前端开发必备: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'}"/>
相关推荐
OOJO9 分钟前
c++---list介绍
c语言·开发语言·数据结构·c++·算法·list
AI袋鼠帝33 分钟前
火爆全网的Seedance2.0 十万人排队,我2分钟就用上了
前端
IT_陈寒34 分钟前
React Hooks闭包陷阱:你以为的state可能早就过期了
前端·人工智能·后端
Jenlybein35 分钟前
快速了解熟悉 Vite ,即刻上手使用
前端·javascript·vite
小码哥_常35 分钟前
安卓开发避坑指南:全局异常捕获与优雅处理实战
前端
lihaozecq36 分钟前
我用 1 天的时间 vibe coding 了一个多人德州扑克游戏
前端·react.js·ai编程
momo0611737 分钟前
AI Skill是什么?
前端·ai编程
言萧凡_CookieBoty37 分钟前
用 AI 搞定用户系统:Superpowers 工程化开发教程
前端·ai编程
小小小小宇38 分钟前
Go 语言协程
前端
牛奶39 分钟前
5MB vs 4KB vs 无限大:浏览器存储谁更强?
前端·浏览器·indexeddb