Use imágenes SVG a través de vite-plugin-svg-icons

1. Instale  vite -plugin-svg-icons


   
   
    
    
  1. npm i vite-plugin-svg-iconos -D
  2. // o
  3. hilo añadir vite-plugin-svg-iconos -D

2. Introducir en main.js

import 'virtual:svg-icons-register'
   
   
    
    

3. Configurar la carpeta de imágenes SVG

como:

4. Configurar en vite.config.js


   
   
    
    
  1. //importar ruta, {resolver} desde 'ruta'
  2. importar ruta desde 'ruta'
  3. importar {createSvgIconsPlugin} desde 'vite-plugin-svg-icons'
  4. exportar defineConfig por defecto ( ( comando ) => {
  5. volver {
  6. complementos : [
  7. crearSvgIconsPlugin ({
  8. // Especificar la carpeta para cachear
  9. iconDirs : [ruta. resolver (proceso. cwd (), 'src/activos/iconos' )],
  10. // especifica el formato del ID del símbolo
  11. símboloId : '[nombre]'
  12. })
  13. ],
  14. }
  15. })

5. Cree un nuevo componente de paquete svg, referencia de ruta: src\components\ svg-icon \index.vue


   
   
    
    
  1. <plantilla>
  2. < svg :class = "svgClass" aria-hidden = "true" >
  3. < use class = "svg-use" :href = "symbolId" />
  4. </svg> _ _
  5. </plantilla>
  6. < guión >
  7. importar {defineComponent, calculado} desde 'vue'
  8. exportar defineComponent predeterminado ({
  9. nombre : 'SvgIcon' ,
  10. accesorios : {
  11. prefijo : {
  12. tipo : Cadena ,
  13. predeterminado : 'icono'
  14. },
  15. nombre : {
  16. tipo : Cadena ,
  17. requerido : verdadero
  18. },
  19. nombre de clase : {
  20. tipo : Cadena ,
  21. predeterminado : ''
  22. }
  23. },
  24. configuración ( accesorios ) {
  25. const symbolId = calculado ( () => `# ${props.name} ` )
  26. const svgClass = calculado ( () => {
  27. if (accesorios. className ) {
  28. devuelve `svg-icon ${props.className} `
  29. }
  30. devolver 'svg-icono'
  31. })
  32. volver {Id del símbolo, svgClass}
  33. }
  34. })
  35. </ guión >
  36. < ámbito de estilo >
  37. .svg-icono {
  38. vertical-align : - 0.1em ; /* Debido a que el tamaño del icono está configurado para ser el mismo que el tamaño de la fuente, y el borde inferior del tramo y otras etiquetas se alinearán con la línea de base de la fuente, es necesario establecer un desplazamiento hacia abajo relación para corregir el efecto visual no alineado */
  39. fill: currentColor; /* Define el color del elemento, currentColor es una variable, el valor de esta variable representa el valor del color del elemento actual, si el elemento actual no establece el valor del color, heredará del elemento principal */
  40. desbordamiento : oculto;
  41. }
  42. </ estilo >

6. Importación y uso bajo demanda


   
   
    
    
  1. < plantilla >
  2. < SvgIcon nombre = "problema" > </ SvgIcon >
  3. </ plantilla >
  4. < configuración del guión >
  5. importar SvgIcon desde "@/components/SvgIcon.vue" ;
  6. </ guión >

7. Introducción y uso global

Añadir en main.js


   
   
    
    
  1. importar svgIcon desde './components/svgIcon/index.vue'
  2. createApp ( Aplicación ). componente ( 'svg-icon' , svgIcon)

1. Instale  vite -plugin-svg-icons


   
   
  
  
  1. npm i vite-plugin-svg-iconos -D
  2. // o
  3. hilo añadir vite-plugin-svg-iconos -D

2. Introducir en main.js

import 'virtual:svg-icons-register'
   
   
  
  

3. Configurar la carpeta de imágenes SVG

como:

4. Configurar en vite.config.js


   
   
  
  
  1. //importar ruta, {resolver} desde 'ruta'
  2. importar ruta desde 'ruta'
  3. importar {createSvgIconsPlugin} desde 'vite-plugin-svg-icons'
  4. exportar defineConfig por defecto ( ( comando ) => {
  5. volver {
  6. complementos : [
  7. crearSvgIconsPlugin ({
  8. // Especificar la carpeta para cachear
  9. iconDirs : [ruta. resolver (proceso. cwd (), 'src/activos/iconos' )],
  10. // especifica el formato del ID del símbolo
  11. símboloId : '[nombre]'
  12. })
  13. ],
  14. }
  15. })

5. Cree un nuevo componente de paquete svg, referencia de ruta: src\components\ svg-icon \index.vue


   
   
  
  
  1. <plantilla>
  2. < svg :class = "svgClass" aria-hidden = "true" >
  3. < use class = "svg-use" :href = "symbolId" />
  4. </svg> _ _
  5. </plantilla>
  6. < guión >
  7. importar {defineComponent, calculado} desde 'vue'
  8. exportar defineComponent predeterminado ({
  9. nombre : 'SvgIcon' ,
  10. accesorios : {
  11. prefijo : {
  12. tipo : Cadena ,
  13. predeterminado : 'icono'
  14. },
  15. nombre : {
  16. tipo : Cadena ,
  17. requerido : verdadero
  18. },
  19. nombre de clase : {
  20. tipo : Cadena ,
  21. predeterminado : ''
  22. }
  23. },
  24. configuración ( accesorios ) {
  25. const symbolId = calculado ( () => `# ${props.name} ` )
  26. const svgClass = calculado ( () => {
  27. if (accesorios. className ) {
  28. devuelve `svg-icon ${props.className} `
  29. }
  30. devolver 'svg-icono'
  31. })
  32. volver {Id del símbolo, svgClass}
  33. }
  34. })
  35. </ guión >
  36. < ámbito de estilo >
  37. .svg-icono {
  38. vertical-align : - 0.1em ; /* Debido a que el tamaño del icono está configurado para ser el mismo que el tamaño de la fuente, y el borde inferior del tramo y otras etiquetas se alinearán con la línea de base de la fuente, es necesario establecer un desplazamiento hacia abajo relación para corregir el efecto visual no alineado */
  39. fill: currentColor; /* Define el color del elemento, currentColor es una variable, el valor de esta variable representa el valor del color del elemento actual, si el elemento actual no establece el valor del color, heredará del elemento principal */
  40. desbordamiento : oculto;
  41. }
  42. </ estilo >

6. Importación y uso bajo demanda


   
   
  
  
  1. < plantilla >
  2. < SvgIcon nombre = "problema" > </ SvgIcon >
  3. </ plantilla >
  4. < configuración del guión >
  5. importar SvgIcon desde "@/components/SvgIcon.vue" ;
  6. </ guión >

7. Introducción y uso global

Añadir en main.js


   
   
  
  
  1. importar svgIcon desde './components/svgIcon/index.vue'
  2. createApp ( Aplicación ). componente ( 'svg-icon' , svgIcon)

Supongo que te gusta

Origin blog.csdn.net/weixin_64310738/article/details/129034229
Recomendado
Clasificación