vuecli4插件svg-sprite-loader使用svg图标
作者:柯柯的呵呵哒
这篇文章主要为大家介绍了vuecli4插件svg-sprite-loader使用svg图标示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
vuecli4版本中使用svg-sprite-loader
每次使用一次插件,总会遇到各种各样的坑,npm上面的文档说明老旧,网络上的文章总是字数满满,内在无比空虚,各种复制粘贴。我这个是使用vuecli4版本中使用svg-sprite-loader,废话不都说,一起来看看满满的干货
首先看下效果,避免方法的不正确性
效果图
1、先从阿里图标库中下载svg图标
说明:svg图标一定要去色,不然,调节的图标颜色的时候,是整体效果
图标去色
2、将下载好的svg图标放置到 assets/svg_icon/svg 文件夹中
如图:
svg存放位置
3、再components中新建组件svg_icon.vue
<template> <svg :class="svgClass" aria-hidden="true"> <use :xlink:href="iconName" rel="external nofollow" ></use> </svg> </template> <script> export default { name: 'svg-icon', props: { iconClass: { type: String, required: true }, className: { type: String, default: '' } }, computed: { // 计算属性 iconName() { return `#icon-${this.iconClass}` }, svgClass() { if (this.className) { return 'svg-icon ' + this.className } else { return 'svg-icon' } } } } </script> <style scoped> .svg-icon { width: 1em; height: 1em; vertical-align: -0.15em; fill: currentColor; overflow: hidden; } </style>
4、再 assets/svg_icon中新建index.js
import Vue from 'vue' import svgIcon from '@/components/svgIcon' // 引入刚才新建的svg组件 Vue.component('svg-icon', svgIcon) // 全局组件 const req = require.context('./svg', false, /\.svg$/) // ./svg,就是我们放svg图标的文件名 const requireAll = requireContext => requireContext.keys().map(requireContext) requireAll(req)
5、再vue.config.js中配置svg-sprite-loader
chainWebpack: config => { config.module .rule('svg') .exclude.add(resolve('src/assets/svg_icon')) // index.js 的路径 .end() config.module .rule('icons') .test(/\.svg$/) .include.add(resolve('src/assets/svg_icon')) // index.js 的路径 .end() .use('svg-sprite-loader') .loader('svg-sprite-loader') .options({ symbolId: 'icon-[name]' }) .end() },
6、再main.js中引用
import '@/assets/svg_icon'
7、vue文件中使用
<svg-icon icon-class="notification"></svg-icon>
说明:notification为下载的svg文件名称
总结
这个方法我已经测试过了,肯定有效无意
以上就是vuecli4插件svg-sprite-loader使用svg图标 的详细内容,更多关于vuecli4插件svg-sprite-loader的资料请关注脚本之家其它相关文章!