编写svgIcon组件,vue2 和vue3版本

本文介绍如何在Vue2和Vue3项目中实现SVG图标组件。通过创建SvgIcon组件,可以轻松地管理和使用SVG图标,提高开发效率。文章还详细介绍了如何在项目中注册组件并全局引入SVG图标。

读过一本好书,像交了一个益友。——臧克家
在这里插入图片描述

svgicon 组件搭建

提供两种写法,vue2 和vue3

vue2 写法

  1. 编写SvgIcon组件
// src/components/SvgIcon/index.vue
<template>
  <div v-if="isExternal" :style="styleExternalIcon" class="svg-external-icon svg-icon" v-on="$listeners"></div>
  <svg v-else :fill="iconColor" :class="svgClass" aria-hidden="true" v-on="$listeners">
    <use :xlink:href="iconName" />
  </svg>
</template>

<script>
// doc: https://panjiachen.github.io/vue-element-admin-site/feature/component/svg-icon.html#usage
import {
   
    isExternal } from '@/utils/validate'

export default {
   
   
  name: 'SvgIcon',
  props: {
   
   
    iconClass: {
   
   
      type: String,
      required: true,
      default: ''
    },
    className: {
   
   
      type: String,
      default: ''
    },
    iconColor: {
   
   
      type: String,
      default: ''
    }
  },
  computed: {
   
   
    isExternal() {
   
   
      return isExternal(this.iconClass)
    },
    iconName() {
   
   
      return `#icon-${
     
     this.iconClass}`
    },
    svgClass() {
   
   
      if (this.className) {
   
   
        return 'svg-icon ' + this.className
      } else {
   
   
        return '
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值