# 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"
```