前端开发必备: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'}"/>
相关推荐
摘星编程1 分钟前
在OpenHarmony上用React Native:Spinner自定义样式
javascript·react native·react.js
zhougl9962 分钟前
Java 枚举类(enum)详解
java·开发语言·python
yong99904 分钟前
基于势能原理的圆柱齿轮啮合刚度计算MATLAB程序实现
开发语言·matlab
摇滚侠6 分钟前
css 设置边框
前端·css
lsx20240615 分钟前
R 数组:深入探索与高效使用
开发语言
星火开发设计15 分钟前
格式化输入输出:控制输出精度与对齐方式
开发语言·c++·学习·算法·函数·知识
星爷AG I28 分钟前
9-24 视觉叙事(AGI基础理论)
前端·人工智能
1104.北光c°30 分钟前
【黑马点评项目笔记 | 登录篇】Redis实现共享Session登录
java·开发语言·数据库·redis·笔记·spring·java-ee
2501_9400078932 分钟前
Flutter for OpenHarmony三国杀攻略App实战 - 鸿蒙适配与打包发布
前端·flutter
css趣多多32 分钟前
跨域问题及Vue项目中本地/线上解决方法核心总结
前端