乐趣区

关于前端:在新项目中怎么使用svgicon组件呢-具体步骤


为什么要应用 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 的文件名

退出移动版