Vue ダイナミック バインディング アイコンの完全な手順

Vue ダイナミック バインディング アイコンの完全な手順

0 アイコンと画像の違い

アイコンは文字であり、画像はバイナリ ストリームです。つまり、画像はアイコンよりも読み込みが遅いため、アイコンを読み込むために img タグを使用しないことが最善です。import メソッドを使用してアイコンをコンポーネントとしてインポートし、タグとしてインポートすることができます。

1 svgをインストールする

1. 管理者として cmd ウィンドウを実行し、実行するプロジェクト ディレクトリに切り替えます。

npm に svg を追加

2 アイコンライブラリからアイコンをダウンロードする

1. Alibabaアイコンライブラリ

https://www.iconfont.cn/

2. svgをダウンロードする

3. compone ディレクトリの下に icons ディレクトリを作成し、特にアイコンを保存するために icons の下に svg ディレクトリを作成します。

3 プラグインの使い方を確認する

  • すべてのvueプラグインはnode_modulesにあります
  • ダウンロード時にプラグイン名に従ってプラグインe-cli-plugin-svgのREADMEを見つけます。

4 表示アイコン

1 動的コンポーネントMyIcon.vueを定義する

1. Myiconは親コンポーネントから渡されるプロパティです

2.computed は、myicon.name (アイコンの名前) に基づいてアイコン アドレスを動的に生成するために使用されます。その理由は、export default{} の外部でコンポーネントをインポートする場合、受け取った props 属性を export default{} の外部に渡すことができないため、computed を使用してアイコン コンポーネントを生成するためです。

3.:style は、幅と高さがバインドされる動的にバインドされたスタイルです。そして、props にデフォルト値を設定します。親コンポーネントが幅と高さの情報を渡さない場合は、デフォルト値が使用されます。

4.:fill は fill 属性スタイルにバインドされ、デフォルト値も props に設定されます。

<テンプレート>
	<div>
		<コンポーネント
			:is="アイコン"
			:style="{幅: myicon.width、高さ: myicon.hight}"
			:fill="myicon.fill"
		</コンポーネント>
		
	</div>
</テンプレート>

<スクリプト>
	
	エクスポートデフォルト{
		小道具:{
			マイアイコン:{
				名前:{
					タイプ:文字列
				},
				
				幅:{
					タイプ:文字列、
					デフォルト: '40px'
				},
				高さ:{
					タイプ:文字列、
					デフォルト: '40px'
				},
				埋める:{
					タイプ:文字列、
					デフォルト:'#000000'
				}
			}
			
			

		},
			
		計算:{
			アイコン(){
				return () => import('@/components/icons/svg/' + this.myicon.name + '.svg?inline')
			}
			
		}			
	}
</スクリプト>

<スタイル>	

</スタイル>

2 main.jsでコンポーネントMyIcon.vueをグローバルにインポートして定義します。

'@/components/MyIcon.vue' から mysvg をインポートします。
Vue.component('my-icon',mysvg)

3 親コンポーネントとしてmy-iconを呼び出す

1. myicon:{} に渡されるプロパティを定義します。name は必須フィールドで、サフィックスなしのアイコンの名前です。

<テンプレート>
	
					<私のアイコン
						:name = "スコープ行アイコン"
						:幅 = "50px"
						:height = "50px"
						:fill = "#ff00ff">
					</my-icon>
					
</テンプレート>

<スクリプト>
	
	
	
	エクスポートデフォルト{

		データ() {				
			戻る {		
				
				マイアイコン:{					
					名前: "位置",
					幅: "60px",
					高さ: "60px",
					塗りつぶし: "#ff00ff"					
				},

				

			}
		},
	}
</スクリプト>

<style スコープ lang="less">	
</スタイル>

要約する

これで、vue ダイナミック バインディング アイコンに関するこの記事は終了です。vue ダイナミック バインディング アイコンに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の過去の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • VueルーティングでJWT認証を実装する方法
  • Vueカスタムコンポーネントはイベント修飾子を使用してピットレコードを踏む
  • Vue 名前付きスロットの基本的な使用例
  • Vue 初心者ガイド: 最初の Vue-cli スキャフォールディング プログラムの作成
  • Vue は左右のスライド効果のサンプルコードを実装します
  • VueとFlask間の通信の実装
  • Vueは双方向データバインディングを実装します
  • Vue 3.0 カスタムディレクティブの使い方
  • VueのID認証管理とテナント管理の詳細な説明

<<:  JDBC を使用して Mysql データベースに接続する際に発生する可能性のある問題の概要

>>:  Linux サーバーに Java Web プロジェクトをデプロイするための完全なチュートリアル

推薦する

ファイルの種類を検出するJavaScriptメソッド

目次1. 画像のバイナリデータを表示する方法2. 絵の種類の見分け方3. 画像の種類を検出する方法3...

Linux で Bash 環境変数を設定する方法

Shell は C 言語で書かれたプログラムであり、ユーザーが Linux を使用するための橋渡しと...

Linuxパフォーマンス監視コマンドの簡単な紹介

システムでさまざまな IO ボトルネック、メモリ使用量の増加、CPU 使用率の増加などの問題が発生し...

要素 el-button ボタンコンポーネントの使用の詳細な説明

1. 背景ボタンは非常によく使われており、Element のボタン機能は非常に包括的です。この記事で...

フレックスレイアウトを使用してページレイアウトを簡単に実装するためのサンプルコード

では、早速コードを見てみましょう。 1. 上部、中央、下部のレイアウト: <!DOCTYPE ...

Nginx バージョンのスムーズなアップグレードソリューションの詳細説明

目次背景: Nginx スムーズ アップグレード ソリューションフォールバック手順要約する背景:負荷...

MySQLデータ行と行オーバーフローのメカニズムの詳細な説明

1. 行の形式は何ですか? MySQL の行形式の設定は次のように表示されます。 実際、MySQL ...

offsetWidth、clientWidth、scrollWidth、scrollTop、scrollLeft などのプロパティの図。

注 1: 上の画像の背景全体がこの Web ページのフルサイズであり、中央の小さなボックスがブラウザ...

MySQL 5.7 のユニオンオール使用法のブラックテクノロジーを 5 分で学ぶ

MySQL 5.6 での union all のパフォーマンスパート 1:MySQL 5.6.25 ...

JSはUUIDとNanoIDというユニークなIDメソッドを生成します

目次1. NanoIDがUUIDに取って代わる理由2. jsを生成する方法3. ナノID方式序文:ユ...

Linux の操作とメンテナンスの基本的なスワップ パーティションと LVM 管理のチュートリアル

目次1. スワップパーティション SWAP 1.1 スワップファイルを作成する1.2 スワップパーテ...

CSS で 3D ルービック キューブを実装するサンプル コード

今日は簡単な3Dルービックキューブを作ってみましょうまずはレンダリングを見てみましょう!これを学んだ...

Mysql ルートユーザーアカウントのパスワードをリセットする問題を解決する

問題の説明: mysqladmin.exe を使用してコマンドを実行すると、次のエラー メッセージが...

XHTML チュートリアル、XHTML の基礎を簡単に紹介します

<br />この記事では、XHTMLとXHTMLの基礎知識について簡単に紹介します。 X...