浅析vue cli3 封装Svgicon组件正确姿势(推荐)


Posted in Javascript onApril 27, 2020

vue cli3 手把手教学封装Svgicon组件

第一步:在src文件下新建一个放置svg文件的文件夹

浅析vue cli3 封装Svgicon组件正确姿势(推荐)

第二步:在components文件下新建一个Svg组件

这是一个 文件夹 专门用来存放项目里面需要使用的svg文件,比如 a.svg b.svg …

浅析vue cli3 封装Svgicon组件正确姿势(推荐)

svg组件源码

<template>
 <svg :class="svgClass" aria-hidden="true">
  <use :xlink:href="iconName"></use>
 </svg>
</template>

<script type="text/ecmascript-6">
/* icon组件实现自动引入 ../../Icons/svg 下面所有的图标了
*之后我们就要使用到 webpack 的 require.context。
很多人对于 require.context可能比较陌生,
直白的解释就是require.context("./test", false, /.test.js$/); 
这行代码就会去 test 文件夹(不包含子目录)
下面的找所有文件名以 .test.js 结尾的文件能被 require 的文件。 
更直白的说就是 我们可以通过正则匹配引入相应的文件模块*/
const requireAll = requireContext => requireContext.keys().map(requireContext)
const req = require.context('../../Icons/svg', false, /\.svg$/)
requireAll(req)
export default {
 name: 'Svgicon',
 props: {
  iconClass: {
   type: String,
   required: true
  },
  className: {
   type: String
  }
 },
 computed: {
  iconName () {
   return `#icon-${this.iconClass}`
  },
  svgClass () {
   if (this.className) {
    return 'svg-icon ' + this.className
   } else {
    return 'svg-icon'
   }
  }
 }
}
</script>

<style>
.svg-icon {
   width: 1em;
   height: 1em;
   vertical-align: -0.15em;
   fill: currentColor;
   overflow: hidden;
 }
</style>

第三步:配置vue.config.js

  • 需要的loader
  • npm i svg-sprite-loader -D
chainWebpack: config => {
  const svgRule = config.module.rule('svg')
  svgRule.uses.clear()
  svgRule
   .use('svg-sprite-loader')
   .loader('svg-sprite-loader')
   .options({
    symbolId: 'icon-[name]'
   })
}

 以上就配置完毕

注:未注册组件在人口文件全局注册即可使用(main.js)

到此这篇关于浅析vue cli3 封装Svgicon组件正确姿势(推荐)的文章就介绍到这了,更多相关vue cli3 Svgicon组件内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
javascript两段代码,两个小技巧
Feb 04 Javascript
详解JavaScript语法对{}处理的坑爹之处
Jun 05 Javascript
javascript实现限制上传文件大小
Feb 06 Javascript
JS特效实现图片自动播放并可控的效果
Jul 31 Javascript
JS模拟bootstrap下拉菜单效果实例
Jun 17 Javascript
jQuery实现单击按钮遮罩弹出对话框效果(2)
Feb 20 Javascript
JavaScript引用类型之基本包装类型实例分析【Boolean、Number和String】
Aug 09 Javascript
Node.js 实现抢票小工具 &amp; 短信通知提醒功能
Oct 22 Javascript
微信公众号服务器验证Token步骤图解
Dec 30 Javascript
javascript-hashchange事件和历史状态管理实例分析
Apr 18 Javascript
JavaScript Image对象实现原理实例解析
Aug 26 Javascript
JavaScript 中的执行上下文和执行栈实例讲解
Feb 25 Javascript
react组件基本用法示例小结
Apr 27 #Javascript
react基本安装与测试示例
Apr 27 #Javascript
使用konva和vue-konva库实现拖拽滑块验证功能
Apr 27 #Javascript
JS浏览器BOM常见操作实例详解
Apr 27 #Javascript
Vue CLI3移动端适配(px2rem或postcss-plugin-px2rem)
Apr 27 #Javascript
js HTML DOM EventListener功能与用法实例分析
Apr 27 #Javascript
JS严格模式原理与用法实例分析
Apr 27 #Javascript
You might like
自制汽车收音机天线:收听广播的技巧和方法
2021/03/02 无线电
php仿ZOL分页类代码
2008/10/02 PHP
PHP 读取大文件的X行到Y行内容的实现代码
2013/06/24 PHP
PHP的文件操作与算法实现的面试题示例
2015/08/10 PHP
ExtJS 2.0实用简明教程 之Ext类库简介
2009/04/29 Javascript
ExtJS 2.0实用简明教程 之获得ExtJS
2009/04/29 Javascript
检测input每次的输入是否合法遇到汉字输入就有问题
2012/05/23 Javascript
jQuery遍历之next()、nextAll()方法使用实例
2014/11/08 Javascript
javascript抽象工厂模式详细说明
2014/12/16 Javascript
使用js画图之饼图
2015/01/12 Javascript
jQuery预加载图片常用方法
2015/06/15 Javascript
javascript实现页面刷新时自动清空表单并选中的方法
2015/07/18 Javascript
浅谈js中的三种继承方式及其优缺点
2016/08/10 Javascript
JavaScript字符串对象(string)基本用法示例
2017/01/18 Javascript
input框中自动展示当前日期yyyy/mm/dd的实现方法
2017/07/06 Javascript
想用好React的你必须要知道的一些事情
2017/07/24 Javascript
微信小程序 获取session_key和openid的实例
2017/08/17 Javascript
VueJs组件之父子通讯的方式
2018/05/06 Javascript
JavaScript实现一个简易的计算器实例代码
2018/05/10 Javascript
layui 优化button按钮和弹出框的方法
2018/08/15 Javascript
Django框架中方法的访问和查找
2015/07/15 Python
对python实时得到鼠标位置的示例讲解
2018/10/14 Python
Python之inspect模块实现获取加载模块路径的方法
2018/10/16 Python
Python面向对象之类和实例用法分析
2019/06/08 Python
在Django admin中编辑ManyToManyField的实现方法
2019/08/09 Python
django-crontab 定时执行任务方法的实现
2019/09/06 Python
python 3.74 运行import numpy as np 报错lib\site-packages\numpy\__init__.py
2019/10/06 Python
python将dict中的unicode打印成中文实例
2020/05/11 Python
小学英语教学反思
2014/01/30 职场文书
食品安全承诺书
2014/05/22 职场文书
个人承诺书格式
2014/06/03 职场文书
教师师德师风整改措施
2014/10/24 职场文书
2015年会计个人工作总结
2015/04/02 职场文书
毕业晚宴祝酒词
2015/08/11 职场文书
写自招自荐信的绝招!
2019/04/19 职场文书
SQL Server使用CROSS APPLY与OUTER APPLY实现连接查询
2022/05/25 SQL Server