当前位置: 首页 > 编程笔记 >

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

封昊天
2023-03-14
本文向大家介绍浅析vue cli3 封装Svgicon组件正确姿势(推荐),包括了浅析vue cli3 封装Svgicon组件正确姿势(推荐)的使用技巧和注意事项,需要的朋友参考一下

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

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

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

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

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组件内容请搜索小牛知识库以前的文章或继续浏览下面的相关文章希望大家以后多多支持小牛知识库!

 类似资料:
  • 要成为一个优秀的前端工程师,需要什么技能和学习?答案:练习 在逛知乎、SegmentFault 又或者是相似的技术社区,我们总会看到类似的问题。新手总会关注于,需要怎样的技能,怎么才能入门?有一点经验的程序员则是,需要练习什么?如若一个程序 员已经懂得问题的关键是,编程需要大量的练习。那么,我想这个程序员已经入了这个行道了。 在我成为所谓的『前端工程师』之前,我没有想到会变成这样的结果。 前端项目

  • 本文向大家介绍Vue.js列表渲染绑定jQuery插件的正确姿势,包括了Vue.js列表渲染绑定jQuery插件的正确姿势的使用技巧和注意事项,需要的朋友参考一下 使用v-for绑定列表时,有时候需要绑定如select2之类的jQuery插件。 需要在Vue根据数组内容生成dom元素之后,去找到该dom元素,然后 $().xxx绑定jQuery插件。 之前使用Vue.nextTick方法,在一次d

  • 本文向大家介绍详解webpack3编译兼容IE8的正确姿势,包括了详解webpack3编译兼容IE8的正确姿势的使用技巧和注意事项,需要的朋友参考一下 上一篇中的方法在 webpack 更新后,uglify 缓存地址也发生了变化,需要重新找地址。 后来测试发现不论是 uglify-js2 uglify-js3 都是支持 IE8 兼容处理的。 但在 webpack.optimize.UglifyJs

  • 所有让你直接看最新源码的文章都是在扯淡,你应该从“某个版本”开始阅读代码。 我们并不建议所有的读者都直接看最新的代码,正确的姿势应该是: clone 某个项目的代码到本地 查看这个项目的 release 列表 找到一个看得懂的 release 版本,如 1.0 或者更早的版本 读懂上一个版本的代码 向后阅读大版本的源码 读最新的源码 最好的在这个过程中,可以自己造轮子来实现一遍。 阅读过程 在我阅

  • 我一直在研究封装的概念,发现了一些关于这个主题的不错的线索,比如这个和这个。但我还没能找到一个具体问题的答案。我将使用Swift中的一个示例。 假设你有一个RoadTrip类型的对象: 现在让我们假设应用程序将计算,这是唯一的公共属性: 每加仑平均英里数的计算是RoadTrip对象执行和更新其的私有方法,还是可以接受由单独实用程序类中的另一个方法执行计算,然后更新RoadTrip的属性对象是否使用

  • 您可使用手腕姿势来导航 M600。将手腕向内再向外轻快移动来滚动通知与菜单。您还可以摇动您的手腕来退出时钟画面。 您必须启用手腕姿势功能才可使用这些姿势。 启用手腕姿势功能 导航至 Settings(设定)应用程式,找出并轻触 Gestures(手势)。 轻触Wrist gestures (手腕手势)在手腕手势开启(开关为蓝色)和关闭(开关为灰色)之间来回切换。 您可查看如何使用手腕姿势的说明材料