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. Axiosの紹介2. HTTPインターセプターの設計と実装2.1 インターセプターの紹...
公式サイトからmysql-5.6.37-winx64.zipの解凍バージョンをダウンロードし、構成フ...
問題の説明body内でfilter属性を使用すると、 fixed要素の位置が不正確になります。つまり...
CocosCreatorがスキルCD効果を実現多くのゲームにはスキルがあります。プレイヤーがスキルボ...
目次1. HTML構造を作成する2. テーブルを作成する3. ヘビの頭と体を作る4. 食べ物を作る5...
目次1 現在のデータベースの内容を表示し、データベースをバックアップする2 bin_log関数を有効...
これまで react.forwardRef は react の高階コンポーネントには適用できませんで...
目次必要:アイデア:レッスン:テキストを共有する:要約する必要:インターフェイスからサブメニュー デ...
1: nginx のインストール方法については詳しく説明しません。Baidu で検索してください。 ...
ブロガーは 1 ~ 2 か月間 MySQL を使用していませんでしたが、今日この問題に遭遇しました。...
目次Nginx 負荷分散構成Nginx 負荷分散戦略ポーリング(デフォルト)重さip_ハッシュ公正(...
ビュービューとは何ですか?ビューの役割は何ですか?ビューは仮想テーブルであり、データ自体を含まない論...
<br />原文: http://andymao.com/andy/post/103.h...
TranslateThis URL: http://translateth.is Google 翻訳...
標準化されたデザインソリューション - マークアップ言語とスタイルマニュアルWeb 標準ソリューショ...