前端开发必备: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'}"/>
相关推荐
毕设源码-邱学长2 小时前
【开题答辩全过程】以 基于java的网上书店管理系统为例,包含答辩的问题和答案
java·开发语言
Gogo8162 小时前
同一个 new,不同的世界:Java 与 TypeScript 对象创建机制的降维打击
java·开发语言·typescript
Flywith242 小时前
【2025 年终总结】北漂五年,而立,婚礼,折叠车
android·前端·程序员
你的冰西瓜2 小时前
C++ STL算法——非修改序列算法
开发语言·c++·算法·stl
2501_941982052 小时前
2026马年大吉:基于 Java 的企微外部群主动调用体系
java·开发语言·企业微信
独自破碎E2 小时前
题解 | 灵异背包?
android·java·开发语言
Aliex_git2 小时前
gzip 压缩实践笔记
前端·网络·笔记·学习
木昆子2 小时前
实战A2UI:从JSON到像素——深入Lit渲染引擎
前端·人工智能
an317422 小时前
React 页面加载埋点的正确姿势:useEffect 与 document.readyState 完美配合
前端·javascript·react.js
VXbishe2 小时前
基于web的校园失物招领管理系统-计算机毕设 附源码 24150
javascript·vue.js·spring boot·python·node.js·php·html5