vue3使用vite构建如何引入svg图标

强烈推荐使用 vite-svg-loader库。该库每周 npm 下载量大概12w,目前版本已经更新到了 5.1.0,使用方式极其简单,官方文档示例清晰易懂。

本文将简单介绍一下该库的使用方法,更多进阶用法可自行查看官方文档。

1. 安装 vite-svg-loader 库

bash 复制代码
npm install vite-svg-loader --save-dev

2. 在 vite.config 中注册

js 复制代码
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'

import svgLoader from 'vite-svg-loader'

export default defineConfig({
  plugins: [
      vue(), 
      svgLoader()
  ]
}

3. 在组件中使用 svg 图标

直接在组件的 script 中引入图标即可在 template 中使用,像引入组件一样。

vue3 复制代码
<script setup>
import IconTest from '@/assets/svg/test.svg'
<script>

<template>
    <IconTest />
</template>

4. 注意事项

如果你想要图标的颜色、大小,自动跟随字体的颜色、大小,那么你可能需要修改下载的 svg 文件。

  • svg 元素上添加一个 fill="currentColor" 属性,并移除 path 元素上的 fill 属性。如下图:

  • 或者,在 svg 元素上添加一个 class="svg-icon" 属性,也要移除 path 元素上的 fill 属性,最好将设置这个类的样式文件全局引入(也可以将这个类添加在 app.vue 中)。样式内容如下:

    css 复制代码
    .svg-icon {
      width: 1em;
      height: 1em;
      fill: currentColor;
    }

主要参考了 vite-svg-loader 的官方文档

相关推荐
wearegogog12310 小时前
基于 MATLAB 的卡尔曼滤波器实现,用于消除噪声并估算信号
前端·算法·matlab
Drawing stars10 小时前
JAVA后端 前端 大模型应用 学习路线
java·前端·学习
品克缤11 小时前
Element UI MessageBox 增加第三个按钮(DOM Hack 方案)
前端·javascript·vue.js
小二·11 小时前
Python Web 开发进阶实战:性能压测与调优 —— Locust + Prometheus + Grafana 构建高并发可观测系统
前端·python·prometheus
小沐°11 小时前
vue-设置不同环境的打包和运行
前端·javascript·vue.js
Irene199111 小时前
Vue3 <Suspense> 使用指南与注意事项
vue.js·suspense
qq_4198540511 小时前
CSS动效
前端·javascript·css
烛阴12 小时前
3D字体TextGeometry
前端·webgl·three.js
桜吹雪12 小时前
markstream-vue实战踩坑笔记
前端
C_心欲无痕12 小时前
nginx - 实现域名跳转的几种方式
运维·前端·nginx