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

推薦する

Docker-compose は Docker プライベート ウェアハウスのステップを迅速に構築します

docker-compose.ymlを作成し、次の内容を入力します。 バージョン: '3&#...

Ubuntuで顔認識ログインを実装するための完全な手順

1. Howdyをインストール: howdyプロジェクトアドレス sudo add-apt-repo...

タブ切り替えを実装するための HTML サンプル コード

タブ切り替えもプロジェクトではよく使われる技術です。一般的にタブ切り替えはjsやjqを使って実装され...

MySQL 8.0.15 のインストールと設定のグラフィックチュートリアルと Linux でのパスワード変更

このブログは、MySQL8.0.15 を正常にインストールしたことを思い出すために書きました。以前は...

MySQLは1億のテストデータを素早く挿入します

目次1. テーブルを作成する1.1 テストテーブルt_userを作成する1.2 一時テーブルの作成2...

Linux コマンドラインのクイックヒント: ファイルの検索方法

私たちのコンピューターには、ディレクトリ、写真、ソース コードなどのファイルが保存されています。たく...

MySQL マスター/スレーブ データベース同期構成と一般的なエラー

アクセス回数が増えると、時間のかかるデータベース読み取り操作では、データベースへの負荷を軽減するため...

docker に基づいて nginxssl 設定を開始する

前提条件クラウドサーバー(Alibaba Cloud、Tencent CloudなどのcentOS)...

MySQL ストアド プロシージャ、カーソル、トランザクションの例の詳細な説明

MySQL ストアド プロシージャ、カーソル、トランザクションの例の詳細な説明以下は私が作成した M...

Linux および CentOS (サーバー) に zip および unzip コマンド機能をインストールする

Linux に zip 解凍機能をインストールする通常、 zip コマンドは Linux サーバーに...

MySQLデータベースの基礎知識と操作のまとめ

この記事では、例を使用して、MySQL データベースの基本的な知識と操作について説明します。ご参考ま...

node_modulesを削除して再インストールする方法

目次ステップ1: プロジェクトをインストールするディレクトリにnode_modulesをインストール...

MySQL で戻り値ありと戻り値なしのストアド プロシージャを書く 2 つの方法

プロセス1: 戻り値あり: proc_addNum が存在する場合はプロシージャを削除します。 プロ...

Reactでファイルパスエイリアスを素早く設定する方法

React は、ユーザー インターフェイスを構築するための JavaScript ライブラリです。F...

Dreamweaver で Zen コーディングを使用する方法

前回の記事「Zen Coding: HTML/CSS コードを素早く記述する方法」を公開した後、一部...