Vue で SVG アイコンを導入する方法 Vue で svg アイコンを導入する方法 1インストール yarn に svg-sprite-loader --dev を追加します svg コンポーネント インデックス.vue <!-- svg コンポーネント --> <テンプレート> <svg class="svg-icon" :class="svgClass" aria-hidden="true"> <:xlink:href="アイコン名" /> を使用します </svg> </テンプレート> <スクリプト> エクスポートデフォルト{ 名前: 'SvgIcon', 小道具: { // svg名 svgName: { タイプ: 文字列、 必須: true } }, 計算: { アイコン名() { `#icon-${this.svgName}` を返します }, svgクラス() { if (this.svgName) { 'svg-icon' + this.svgName を返します } それ以外 { 'svg-icon' を返す } } } } </スクリプト> <style lang="less" スコープ> .svgアイコン{ 幅: 100ピクセル; 高さ: 100px; 垂直位置合わせ: -0.15em; 塗りつぶし: 現在の色; オーバーフロー: 非表示; } </スタイル> グローバルに登録する インデックス 'vue' から Vue をインポートします '@/components/SvgIcon' から SvgIcon をインポートします。 // グローバルに登録する Vue.component('svg-icon', SvgIcon) const requireAll = requireContext => requireContext.keys().map(requireContext) const req = require.context('./svg', false, /\.svg$/) すべて必須(必須) 設定ファイル モジュール.エクスポート = { チェーンWebpack: config => { 構成モジュール .rule('svg') .exclude.add('src/assets/icons' を解決します) 。終わり() 構成モジュール .rule('アイコン') .test(/\.svg$/) .include.add('src/assets/icons' を解決します) 。終わり() .use('svg-sprite-loader') .loader('svg-sprite-loader') .オプション({ シンボルID: 'icon-[名前]' }) 。終わり() } } ページで使用されている <!-- svg-name は svg 名です --> <svg-icon svg-name="ic_home_news" /> Vue で svg アイコンを導入する方法 2npm で svg-sprite-loader をインストールします --save-dev vue.config.jsに次のコードを追加します。 定数パス = require('path'); 関数resolve(dir) { // __dirname プロジェクト ルート ディレクトリの絶対パス return path.join(__dirname, dir); } モジュール.エクスポート = { チェーンWebpack: config => { svgRule は config.module.rule('svg') に追加されます。 // 既存のローダーをすべてクリアする // これを行わないと、後続のローダーはこのルールの既存のローダーの後に追加されます svgRule.uses.clear(); svgルール .test(/\.svg$/) .include.add(path.resolve(__dirname, './src/icons/svg')) 。終わり() .use('svg-sprite-loader') .loader('svg-sprite-loader') .オプション({ シンボルID: 'icon-[名前]' }); config.module.rule の 'file' を設定します。 ファイルルールはクリア() を使用します。 ファイルルール .test(/\.svg$/) .exclude.add(path.resolve(__dirname, './src/icons/svg')) 。終わり() .use('ファイルローダー') .loader('ファイルローダー'); }, } 次のファイルディレクトリを作成します SvgIcon.vue コード <テンプレート> <svg :class="svgClass" xmlns="http://www.w3.org/2000/svg"> <use :xlink:href="iconName" xmlns:xlink="http://www.w3.org/1999/xlink" /> </svg> </テンプレート> <スクリプト> エクスポートデフォルト{ 名前: 'SvgIcon', 小道具: { アイコンクラス: { タイプ: 文字列、 必須: true }, クラス名: { タイプ: 文字列、 デフォルト: '' } }, 計算: { アイコン名() { `#icon-${this.iconClass}` を返します。 }, svgクラス() { if (this.className) { 'svg-icon ' + this.className を返します。 } それ以外 { 'svg-icon' を返します。 } } } }; </スクリプト> <スタイルスコープ> .svgアイコン{ 幅: 1em; 高さ: 1em; 垂直位置合わせ: -0.15em; 塗りつぶし: 現在の色; オーバーフロー: 非表示; } </スタイル> SVGアイコンを配置するSVGフォルダ 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); すべて要求します(req); 最後にmain.jsで導入します './icons' をインポートします。 ページでSVGを使用する
<svg-icon icon-class="features_ic_risk@1x" class-name="icon"></svg-icon> 要約するこれで、Vue で svg アイコンを導入する 2 つの方法についての記事は終了です。Vue で svg アイコンを導入することに関するより関連性の高いコンテンツについては、123WORDPRESS.COM で以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: vue+element テーブルで動的な列フィルタリングを実装するためのサンプルコード
>>: Vue で HTML 5 ドラッグ アンド ドロップ API を使用する方法
目次1. JSONとは何か1.1 配列リテラル1.2 オブジェクトリテラル1.3 混合リテラル1.4...
成果を達成する 実装コードhtml <h1 class="text-light&qu...
ウェブサイト構築におけるカラーマッチングは非常に特殊であり、ウェブサイトのテーマ、感情、雰囲気などの...
この記事の例では、テーブルドラッグオプションを実装するためのjsの具体的なコードを参考までに共有して...
目次1. axiosをインストールする2. アクシオスの使用1.ホームページでaxiosを参照する2...
ウェブデザイナーを長い間悩ませてきた疑問があります。それは、固定レイアウト、流動的レイアウト、柔軟レ...
CocosCreator バージョン 2.3.4ドラゴンボーンアニメーションキールアニメーションを ...
目次1. ルーティングアニメーション2. グループクエリとスタガー1. ルーティングアニメーションル...
Magento を頻繁に変更する場合、element.style に遭遇することがあります。 これは...
MySql でリモート接続を許可する方法この目標を達成するには、2つのことを行う必要がある。ユーザー...
黄金律常に同じコーディング標準セットに従ってください。同じプロジェクトに何人の人が関わっているかに関...
コードをコピーコードは次のとおりです。 <meta name="viewport&q...
実装のアイデアまず、親コンテナーを作成し、2 つの順序なしリストを使用して、柔軟なレイアウトで親コン...
Linux システム管理者にとって、サービスがポートに正しくバインドされているか、またはポートをリッ...
1. Windows Server 2019 のインストールVmware に Windows Se...