vite-plugin-svg-icons 経由で SVG 画像を使用する

1.  vite -plugin-svg-iconsをインストールします


   
   
    
    
  1. npm i vite-plugin-svg-icons -D
  2. // また
  3. yarn add vite-plugin-svg-icons -D

2.main.jsに導入する

import 'virtual:svg-icons-register'
   
   
    
    

3. SVG 画像フォルダーを構成する

好き:

4. vite.config.js で構成する


   
   
    
    
  1. // import path,{ resolve } from 'path'
  2. 「パス」からパスをインポート
  3. 「vite-plugin-svg-icons」から{createSvgIconsPlugin}をインポートします
  4. export default defineConfig ( (コマンド) => {
  5. {を返す
  6. プラグイン : [
  7. createSvgIconsPlugin ({
  8. // キャッシュするフォルダを指定
  9. iconDirs : [パス。resolve (process.cwd ( ), 'src/assets/icons' )],
  10. // symbolId 形式を指定
  11. symbolId : '[名前]'
  12. }))
  13. ]、
  14. }
  15. }))

5. 新しい svg パッケージ コンポーネントを作成します。パス参照: src\components\ svg-icon \index.vue


   
   
    
    
  1. <テンプレート>
  2. < svg :class = "svgClass" aria-hidden = "true" >
  3. < use class = "svg-use" :href = "symbolId" />
  4. </ svg >
  5. </テンプレート>
  6. <スクリプト>
  7. import { defineComponent、計算済み } from 'vue'
  8. デフォルトの defineComponent をエクスポートします({
  9. 名前 「SvgIcon」
  10. 小道具 :{
  11. プレフィックス : {
  12. タイプ :文字列
  13. デフォルト 「アイコン」
  14. }、
  15. 名前 : {
  16. タイプ :文字列
  17. 必須 :
  18. }、
  19. クラス名 : {
  20. タイプ :文字列
  21. デフォルト : ''
  22. }
  23. }、
  24. セットアップ (小道具) {
  25. const symbolId =計算( () => `# ${props.name} ` )
  26. const svgClass =計算( () => {
  27. if (小道具。クラス名) {
  28. return `svg-icon ${props.className} `
  29. }
  30. 'svg-icon'を返す
  31. }))
  32. return {シンボルID、svgClass}
  33. }
  34. }))
  35. </スクリプト>
  36. <スタイル スコープ>
  37. .svg-アイコン {
  38. vertical-align : - 0.1em ; /* アイコンのサイズはフォントサイズと同じに設定されており、スパンやその他のラベルの下端はフォントのベースラインに合わせられるため、下方向のオフセットを設定する必要があります視覚的な不揃い効果を修正する比率 */
  39. fill: currentColor; /* 要素の色を定義します。currentColor は変数です。この変数の値は、現在の要素の色の値を表します。現在の要素が色の値を設定していない場合は、親要素から継承されます。 */
  40. オーバーフロー : 非表示;
  41. }
  42. </スタイル>

6. オンデマンドでインポートして使用する


   
   
    
    
  1. <テンプレート>
  2. < SvgIcon name = "issue" > </ SvgIcon >
  3. </テンプレート>
  4. スクリプト 設定
  5. "@/components/SvgIcon.vue"から SvgIcon をインポートします
  6. </スクリプト>

7. グローバルな導入と使用

main.js に追加


   
   
    
    
  1. 「./components/svgIcon/index.vue」からsvgIconをインポートします
  2. createApp (アプリ)。コンポーネント( 'svg-icon' , svgIcon)

1.  vite -plugin-svg-iconsをインストールします


   
   
  
  
  1. npm i vite-plugin-svg-icons -D
  2. // また
  3. yarn add vite-plugin-svg-icons -D

2.main.jsに導入する

import 'virtual:svg-icons-register'
   
   
  
  

3. SVG 画像フォルダーを構成する

好き:

4. vite.config.js で構成する


   
   
  
  
  1. // import path,{ resolve } from 'path'
  2. 「パス」からパスをインポート
  3. 「vite-plugin-svg-icons」から{createSvgIconsPlugin}をインポートします
  4. export default defineConfig ( (コマンド) => {
  5. {を返す
  6. プラグイン : [
  7. createSvgIconsPlugin ({
  8. // キャッシュするフォルダを指定
  9. iconDirs : [パス。resolve (process.cwd ( ), 'src/assets/icons' )],
  10. // symbolId 形式を指定
  11. symbolId : '[名前]'
  12. }))
  13. ]、
  14. }
  15. }))

5. 新しい svg パッケージ コンポーネントを作成します。パス参照: src\components\ svg-icon \index.vue


   
   
  
  
  1. <テンプレート>
  2. < svg :class = "svgClass" aria-hidden = "true" >
  3. < use class = "svg-use" :href = "symbolId" />
  4. </ svg >
  5. </テンプレート>
  6. <スクリプト>
  7. import { defineComponent、計算済み } from 'vue'
  8. デフォルトの defineComponent をエクスポートします({
  9. 名前 「SvgIcon」
  10. 小道具 :{
  11. プレフィックス : {
  12. タイプ :文字列
  13. デフォルト 「アイコン」
  14. }、
  15. 名前 : {
  16. タイプ :文字列
  17. 必須 :
  18. }、
  19. クラス名 : {
  20. タイプ :文字列
  21. デフォルト : ''
  22. }
  23. }、
  24. セットアップ (小道具) {
  25. const symbolId =計算( () => `# ${props.name} ` )
  26. const svgClass =計算( () => {
  27. if (小道具。クラス名) {
  28. return `svg-icon ${props.className} `
  29. }
  30. 'svg-icon'を返す
  31. }))
  32. return {シンボルID、svgClass}
  33. }
  34. }))
  35. </スクリプト>
  36. <スタイル スコープ>
  37. .svg-アイコン {
  38. vertical-align : - 0.1em ; /* アイコンのサイズはフォントサイズと同じに設定されており、スパンやその他のラベルの下端はフォントのベースラインに合わせられるため、下方向のオフセットを設定する必要があります視覚的な不揃い効果を修正する比率 */
  39. fill: currentColor; /* 要素の色を定義します。currentColor は変数です。この変数の値は、現在の要素の色の値を表します。現在の要素が色の値を設定していない場合は、親要素から継承されます。 */
  40. オーバーフロー : 非表示;
  41. }
  42. </スタイル>

6. オンデマンドでインポートして使用する


   
   
  
  
  1. <テンプレート>
  2. < SvgIcon name = "issue" > </ SvgIcon >
  3. </テンプレート>
  4. スクリプト 設定
  5. "@/components/SvgIcon.vue"から SvgIcon をインポートします
  6. </スクリプト>

7. グローバルな導入と使用

main.js に追加


   
   
  
  
  1. 「./components/svgIcon/index.vue」からsvgIconをインポートします
  2. createApp (アプリ)。コンポーネント( 'svg-icon' , svgIcon)

おすすめ

転載: blog.csdn.net/weixin_64310738/article/details/129034229