为什么要应用svg而不间接应用字体图标?

首先让咱们先来一起理解一下什么是SVG,SVG是一种可缩放矢量图形(英语:Scalable Vector Graphics,SVG)是基于可扩大标记语言(XML),用于形容二维矢量图形的图形格局。SVG由W3C制订,是一个凋谢规范。

简略的了解,它是图形的另一种格局例如它和常见的图片格式.png、.jpg、.gif等是一类

应用SVG的长处:

1.兼容现有图片能力前提还反对矢量2.可读性好,有利于SEO与无障碍3.在性能和维护性方面也比iconfont要强很多

当初大家知道起因了吧,接下来,在新我的项目中咱们怎么应用svg-icon组件呢?

(具体步骤如下:)

1.装置依赖npm i svg-sprite-loader@4.1.3  
2.配置vue.config.jsconst path = require('path')function resolve (dir) {  return path.join(__dirname, dir)}

补充一个配置{ }

module.exports = {  publicPath: './',  chainWebpack (config) {    // set svg-sprite-loader    config.module      .rule('svg')      .exclude.add(resolve('src/icons'))      .end()    config.module      .rule('icons')      .test(/\.svg$/)      .include.add(resolve('src/icons'))      .end()      .use('svg-sprite-loader')      .loader('svg-sprite-loader')      .options({        symbolId: 'icon-[name]'      })      .end()  }}
3.src下引入icons文件src/icons-       /svg       # 保留图标-       /index.js  # 注册全局组件
4.componets/SvgIcon/index.vue 这个门路下引入utils/validate.js 
5. .icons文件在 main.js中导入 import '@/icons'

页面上应用的时候, <svg-icon icon-class="star"/>, 这个文件名是指icons文件下的svg外面的.svg的文件名