1. Vue プロジェクトを作成します (CLI を使用してスキャフォールディングを構築します。このテスト プロジェクトは Vue CLI4 で構成されています) 2. カスタムコンポーネントを作成する 具体的なコードは次のとおりです。 <テンプレート> <svg :class="svgClass" aria-hidden="true" v-on="$listeners"> <use :xlink:href="iconName" rel="external nofollow" /> </svg> </テンプレート> <スクリプト> エクスポートデフォルト{ 名前: "SvgIcon", 小道具: { アイコンクラス: { タイプ: 文字列、 必須: true、 }, クラス名: { タイプ: 文字列、 デフォルト: ""、 }, }, 計算: { アイコン名() { `#icon-${this.iconClass}` を返します。 }, svgクラス() { if (this.className) { "svg-icon " + this.className を返します。 } それ以外 { "svg-icon" を返します。 } }, }, }; </スクリプト> <スタイルスコープ> .svgアイコン{ 幅: 1em; 高さ: 1em; 垂直位置合わせ: -0.15em; 塗りつぶし: 現在の色; オーバーフロー: 非表示; } </スタイル> 3. ルートディレクトリにアイコンを作成し、新しい index.js を作成します (これは後でグローバルにインポートされます)。また、svg 画像を保存するための新しい svg ディレクトリを作成します (svg のダウンロード方法については、Alibaba のアイコンフォントからダウンロードできます。Baidu で検索してください)。 index.js の具体的なコードは次のとおりです。 'vue' から Vue をインポートします import SvgIcon from '@/components/svgIcon' // svg コンポーネント // グローバルに登録 Vue.component('svg-icon', SvgIcon) const req = require.context('./svg', false, /\.svg$/) const requireAll = requireContext => requireContext.keys().map(requireContext) すべて必須(必須) 4.導入のためにmain.jsをグローバルにインポートする 5. この時点で、プロジェクトはvue.config.jsも設定する必要があります(そうしないと表示されません) 定数パス = require('path') モジュール.エクスポート = { チェーンWebpack: config => { svgRule は config.module.rule('svg') に定義されます。 svgRule.uses.clear() svgルール .test(/\.svg$/) .include.add(path.resolve(__dirname, './src/icons')).end() .use('svg-sprite-loader') .loader('svg-sprite-loader') .オプション({ シンボルID: 'icon-[名前]' }) 定数 fileRule = config.module.rule('file') fileRule.uses.clear() ファイルルール .test(/\.svg$/) .exclude.add(path.resolve(__dirname, './src/icons')) 。終わり() .use('ファイルローダー') .loader('ファイルローダー') } } それでおしまい; 6. プロジェクトでコンポーネントを使用する ここでは関数コンポーネントを使用して紹介しますが、これは通常のコンポーネントの使用方法でも紹介できます。 <スクリプト> エクスポートデフォルト{ 機能的: 真、 小道具: { レベル: タイプ: 数値、 必須: true、 }, }, レンダリング: 関数 (h, コンテキスト) { console.log(コンテキスト); vnodes = [] とします。 { レベル } = context.props; // vnodes.push(<i class="el-icon-edit" style="width:19px"></i>); vnodes.push(<svg-icon icon-class="date"></svg-icon>); vnodes.push(<span class="span">{レベル}</span>); vnode を返します。 }, }; </スクリプト> <スタイルスコープ> .span { フォントサイズ: 50px; } </スタイル> 注: icon-class の値は、svg のファイル名そのものになります。 これで、Vue プロジェクトで SVG コンポーネントをカプセル化して構成する手順に関するこの記事は終了です。Vue SVG コンポーネントのカプセル化と構成の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: Tomcatアーキテクチャの原則をアーキテクチャ設計に分析する
>>: CSSでフレックス配置を表示する(レイアウトツール)
目次ブラウザカーネルJavaScript エンジンV8エンジンJavaScript がどのように実行...
目次1. 読みやすいコード1. 統一コード形式2. マジックナンバーを削除する3. 単一機能原則2....
1. 仮想マシンをダウンロードする公式ダウンロードウェブサイト: https://www.vmwar...
導入あなたも面接でこれに遭遇したことがあるはずです。トランザクションの分離レベルについてお話ししまし...
Discuz! フォーラムにはバックグラウンドで多くの設定オプションがあり、これらの設定オプションを...
目次序文スタイル機能説明初期化コードイベントリスナーの追加リスナーツールバーモニターテーブル行ツール...
非直交マージンマージンを使用するとマージが発生します次のプロパティはマージンの結合を防止します。国境...
Linux touch コマンドの詳細な説明: 1. コマンド機能:ファイルまたはディレクトリの作成...
この記事では、例を使用して、MySQL ストアド プロシージャでの if ステートメントの使用方法を...
目次背景問題分析1. 属性値はJson形式であり、Json操作関数を使用して処理する必要があります。...
接続クエリ:これは、2 つのクエリ (またはテーブル) の各行をペアで接続した結果です。つまり、1 ...
Springboot プロジェクトをサーバーにデプロイする方法としては、war パッケージにパッケー...
ページ内にはjs、cssなどの外部ファイルが導入されており、外部ファイルのエンコードが現在のページフ...
html: 実際には、テーブルタグに従っていくつかの実線の円 div を正六角形に配置し、div コ...
PHPのメール関数を使用してメールを送信するmail()関数はメールサーバーに接続し、サーバーと対話...