前端开发必备:icon封装技巧

main.js
复制代码
import svgIcon from '@/components/SvgIcon'
Vue.component('svg-icon-full', svgIcon)
const requireAll = requireContext => requireContext.keys().map(requireContext)
const req = require.context('@/assets/icons/svg', false, /\.svg$/)  // icon位置
requireAll(req)
SvgIcon组件
复制代码
<template>
  <i v-if="iconFileName.indexOf('el-icon-') === 0" :class="iconFileName" />
  <svg v-else class="svg-icon" aria-hidden="true" v-on="$listeners">
    <use :xlink:href="`#icon-${iconFileName}`" rel="external nofollow" :class="[iconColor]"/>
  </svg>
</template>

<script>
export default {
  name: 'SvgIcon',
  props: {
    iconFileName: {
      type: String,
      required: true
    },
    iconColor: {
      type: String,
      default: ''
    }
  }
}
</script>

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

icon-file-name="文件名"

复制代码
<svg-icon-full icon-file-name="alarm" :style="{width: '14px', height: '14px', color: '#FF4621'}"/>
相关推荐
大布布将军5 分钟前
⚡部署的通行证:Docker 容器化基础
运维·前端·学习·程序人生·docker·容器·node.js
Pcr_C5 分钟前
Qt事件循环深度解析与实战指南
开发语言·c++·qt·开源
Fate_I_C6 分钟前
Kotlin 中 `@JvmField` 注解的使用
android·开发语言·kotlin
大大祥6 分钟前
一个kotlin实现的视频播放器
android·开发语言·kotlin·音视频
0思必得011 分钟前
[Web自动化] JavaScriptAJAX与Fetch API
运维·前端·javascript·python·自动化·html·web自动化
唐古乌梁海11 分钟前
【pytest】pytest详解-入门到精通
开发语言·python·pytest
爱上妖精的尾巴15 分钟前
7-1 WPS JS宏 Object对象创建的几种方法
开发语言·前端·javascript
ZePingPingZe19 分钟前
静态代理、JDK和Cglib动态代理、回调
java·开发语言
孙_华鹏20 分钟前
高德地图与Three.js结合实现3D大屏可视化
前端·数据可视化
2501_9216494921 分钟前
iTick 全球外汇、股票、期货、基金实时行情 API 接口文档详解
开发语言·python·websocket·金融·restful