vue使用字体图标svg,在src下新建目录icons文件,再在icons文件下新建svg文件,在阿里ico中将字体的svg图片下载下来即可:例如from.svg
在组件中新建icon-svg.vue组件
<template>
<svg class="svg-icon" aria-hidden="true">
<use :xlink:href="iconName"></use>
</svg>
</template>
<script>
export default {
name: ‘icon-svg‘,
props: {
iconClass: {
type: String,
required: true
}
},
computed: {
iconName() {
return `#icon-${this.iconClass}`
}
}
}
</script>
<style scoped lang="stylus">
.svg-icon {
width 1.1em
height 1.1em
vertical-align -.2em
fill currentColor
overflow hidden
}
</style>
在iicon的js中使用该组件icon-svg.vue组件
import Vue from ‘vue‘
import IconSvg from ‘@/components/icon-svg‘
/*
require.context("./test", false, /.test.js$/);这行代码就会去 test 文件夹(不包含子目录)
下面的找所有文件名以 .test.js 结尾的文件能被 require 的文件。更直白的说就是 我们可以通过正则匹配引入相应的文件模块。
require.context有三个参数:
directory:说明需要检索的目录
useSubdirectories:是否检索子目录
regExp: 匹配文件的正则表达式
*/
//全局注册iconsvg组件
Vue.component(‘svg-icon‘, IconSvg)
const requireAll = requireContext => requireContext.keys().map(requireContext)
const req = require.context(‘./svg‘, false, /\.svg$/)
requireAll(req)
main.js引入全局图标(后面的index.js可以省略)
// 全局图标 import ‘./icons/index.js‘
全局组件使用方式
<svg-icon icon-class="form"></svg-icon>
SVG安装
npm i svg-sprite-loader --save
配置相关信息 在build/webpack.base.conf.js文件中,加入
{
test: /\.svg$/,
loader: ‘svg-sprite-loader‘,
include: [resolve(‘src/icons‘)],
options: {
symbolId: ‘icon-[name]‘
}
},
exclude: [resolve(‘src/icons‘)],

相关学习链接:https://www.jianshu.com/p/5b2c7757fc19
原文:https://www.cnblogs.com/wjw-/p/11549774.html