# vue使用svg矢量图标 ## 一、安装svg-sprite-loader ```bash npm install svg-sprite-loader --save ``` ## 二、配置vue.config.js ```bash const path = require('path') module.exports = { chainWebpack: config => { const svgRule = config.module.rule('svg') // 清除已有的所有 loader,否则接下来的 loader 会附加在该规则现有的 loader 之后。 svgRule.uses.clear() svgRule .test(/\.svg$/) .include.add(path.resolve(__dirname, './src/assets/icons'))// 配置icons的目录 .end() .use('svg-sprite-loader') .loader('svg-sprite-loader') .options({ symbolId: 'icon-[name]' }) const fileRule = config.module.rule('file') fileRule.uses.clear() fileRule .test(/\.svg$/) .exclude.add(path.resolve(__dirname, './src/assets/icons')) // 配置icons的目录 .end() .use('file-loader') .loader('file-loader') } } ``` ## 三、新建IconSvg.vue ```vue ``` ## 四、全局引入或局部引入 ```bash import Vue from 'vue' import App from './App.vue' import './registerServiceWorker' import router from './router' import store from './store' //引入svg组件 import IconSvg from './components/IconSvg' // //全局注册svg-icon Vue.component('svg-icon', IconSvg) new Vue({ router, store, render: h => h(App) }).$mount('#app') ``` ```bash //局部引入svg组件 import IconSvg from './components/IconSvg' ``` ## 五、使用 ```vue ``` ## 六、自定义更改颜色 ```bash #确保 .svg文件中 fill="currentColor" #然后为加上class="XXX" ```