vue项目中使用svg图标

  1. 安装webpack插件svg-sprite-loader
npm install svg-sprite-loader --save-dev
  1. 更改build/webpack.base.conf.js配置文件
{
    test: /\.svg$/,
    loader: 'svg-sprite-loader',
    include: [resolve('src/icons')],
    options: {
        symbolId: 'icon-[name]'
    }
},
{
    test: /\.(png|jpe?g|gif|svg)(\?.*)?$/,
    loader: 'url-loader',
    exclude: [resolve('src/icons')],
    options: {
        limit: 10000,
        name: utils.assetsPath('img/[name].[hash:7].[ext]')
    }
}
  1. src/components创建SvgIcon组件





  1. 在src目录下创建icons文件下,文件夹下面有svg文件夹和index.js文件。

index.js文件作用是使用webpack 的require.context自动引入 @/src/icons 下面所有的图标,svg文件夹用于存放svg图标文件

index.js文件:

import Vue from 'vue'
import SvgIcon from '@/components/SvgIcon'// svg组件
// register globally
Vue.component('svg-icon', SvgIcon)
const requireAll = requireContext => requireContext.keys().map(requireContext)
const req = require.context('./svg', false, /\.svg$/)
requireAll(req)
  1. main.js中引入组件
import './icons' // icon
  1. 组件引用

//xxx为svg图标文件名

你可能感兴趣的:(vue项目中使用svg图标)