为什么要使用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.js
const 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的文件名
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。