强烈推荐使用 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 的官方文档