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

推薦する

HTML テーブル マウス ドラッグ ソート機能

効果画像: 1. ファイルをインポートする<script src="js/jquer...

CSS メニューボタンアニメーション

ドロップダウンメニューを書くには、ボタンをクリックします。メニューの入り口はアイコンボタンをクリック...

Vue プロジェクト @change 複数のパラメータを使用して複数のイベントを渡す

まず、変更イベントは 1 つだけです。 changelevel() //値を選択選択を変更して行の値...

ローカル Docker に Postgres 12 + pgadmin をインストールする方法 (Apple M1 をサポート)

目次導入Intel CPUをサポートApple M1のサポートテスト導入このプロジェクトでは最近、P...

ボタンと入力タイプの違いと注意点

<button> タグ<br />定義と使用法<button> ...

tbodyタグの魔法はテーブルコンテンツの表示を高速化します

他の人のウェブページを保存して見たことがあると思いますが、特にdwで開くと、多くのウェブページに&l...

MySQL 5.7.17 とワークベンチのインストールと設定のグラフィックチュートリアル

この記事では、MySQL 5.7.17ワークベンチのインストールと設定方法を参考までに紹介します。具...

Canonical が Flutter で Linux デスクトップ アプリを有効化 (推奨)

Google の Flutter の目標は、どのプラットフォームを使用していても、ネイティブの速度...

Linux システムでのスケジュールされたタスクの紹介

目次1. 計画タスクをカスタマイズする2. 時間を同期する3. 練習する4. セキュリティの問題1....

Ubuntu16.04にclionをインストールするプロセス全体と手順の詳細な説明

CLion のプロセス全体を最初から説明します。CLion は、JetBrains がリリースした新...

Dockerのプロセスとイメージを実行するための基本コマンドの詳細な説明

目次1. ワークフローを実行する2. ミラーリングの基本コマンド1. ワークフローを実行するDock...

ストアド プロシージャでエラー状態をトリガーする mysql ストアド プロシージャの分析例 (SIGNAL および RESIGNAL ステートメント)

この記事では、例を使用して、MySQL がストアド プロシージャで引き起こすエラー状態 (SIGNA...

Vue+el-tableはセルの結合を実現します

この記事の例では、参考までにセルの結合を実現するためのel-tableの具体的なコードを共有していま...

マークアップ言語 -

123WORDPRESS.COM HTML チュートリアル セクションに戻るには、ここをクリックして...

Windows での Nginx のインストールと環境設定 (nginx をサービスとして実行)

最初で最も重要なステップは、Windows 環境に Ngnix サービスをインストールする方法です。...