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 プロジェクトをデプロイするための完全なチュートリアル

推薦する

CSS3ダイヤモンドパズルはdivのみを回転し、背景画像は回転しない機能を実現します

需要背景プロジェクトはVueを使用して作成され、ビジネス要件にはパズル効果があります。デフォルトの背...

Vue 開発プロジェクトで Font Awesome 5 を使用する方法

目次依存関係をインストールする構成使用1.アイコン検索ページに入る2. 使用したいアイコンの英語名を...

Vue の計算プロパティ

目次1. 基本的な例2. 計算プロパティキャッシュとメソッド3. 計算プロパティセッター序文:通常、...

mysql5.7.18 のインストール時にエントリが見つからない問題の解決方法

mysql5.7.18のインストール時に次の問題が発生しました: プログラム入力ポイントfesetr...

Vue3とElectronを使ったデスクトップアプリケーションの詳しい説明

目次Vue CLIはVueプロジェクトを構築しますVue プロジェクトをマークダウン エディターに変...

MySQLはフィールドからカンマ区切りの値を取り出して新しいフィールドを形成します

1例: 図1のフィールドを図2に分割するには アカウントIDを選択、 サブストリングインデックス(サ...

MySQLカバーインデックスの詳しい説明

コンセプトインデックスにクエリ要件を満たすすべてのデータが含まれている場合、それはカバーリング イン...

Ubuntuがインターネットに接続できない場合の解決策

問題の説明:デスクトップ コンピューターとキャンパス ネットワークを使用して、有線モードでインターネ...

LinuxにVSCodeをダウンロードしてインストールし、プログラミングを使用して現在の時刻を出力する

rpmコマンドがソフトウェアのインストールに使用するパラメータはどれですか: -i rpm コマンド...

Linux で g++ を使用してプログラムをコンパイルする際の -I (大文字の i)、-L (大文字の l)、-l (小文字の l) の機能の詳細な説明

初心者の Linux ユーザーとして、私は単純なgcc/g++操作を何度も使用してきましたが、少し複...

VMware ESXi サーバー仮想化クラスター

目次まとめ環境とツールの準備サーバー仮想化のインストール VMware ESXi仮想マシンのオペレー...

さまざまなHTTPリターンステータスコードの詳細な説明

サイト上のページを表示するためのリクエストがサーバーに送信されると(たとえば、ユーザーがブラウザでペ...

このポイントのJavaScriptの基本

目次これ方法オブジェクト内これを隠した厳密モード要約するJavaScript の this も不思議...

MySQL DML ステートメントの概要

DML 操作とは、データベース内のテーブル レコードに対する操作を指し、主にテーブル レコードの挿入...