前端开发必备: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'}"/>
相关推荐
兰文彬8 小时前
n8n 2.x版本没有内嵌Python环境
开发语言·python
前端老石人8 小时前
HTML文档元素与元数据详解
前端·html
yiyaozjk8 小时前
Go基础之环境搭建
开发语言·后端·golang
wing988 小时前
用 AI 实现图片懒加载,这也太简单了!
前端·vue.js·图片资源
谁动了我的代码?9 小时前
VNC中使用QT的GDB调试,触发断点时与界面窗口交互导致整个VNC冻结
开发语言·qt·svn
sigernet9 小时前
Claude Code 不再推荐 npm 安装:官方改为 Native Installer
前端·npm·node.js
We་ct9 小时前
LeetCode 212. 单词搜索 II:Trie+DFS 高效解法
开发语言·算法·leetcode·typescript·深度优先·图搜索算法·图搜索
lxh01139 小时前
函数防抖题解
前端·javascript·算法
OxyTheCrack9 小时前
【C++】简述main函数中的argc与argv
开发语言·c++
颜酱9 小时前
环检测与拓扑排序:BFS/DFS双实现
javascript·后端·算法