动态的图标运用

第一步:先建立DynamicIcon.vue

代码如下

<template>
  <component
    :is="iconComponent"
    style="margin-right: 10px"
  />
</template>

<script setup>
import {
  HomeOutlined, BarsOutlined, CalendarOutlined, ProjectOutlined, CaretDownOutlined, DownOutlined, UpOutlined, WechatOutlined, IdcardOutlined, PhoneOutlined,
  SearchOutlined, FireOutlined, QuestionCircleOutlined, DoubleRightOutlined
} from '@ant-design/icons-vue';

const props = defineProps({
  type: {
    type: String,
    required: true
  }
});

const iconComponent = computed(() => {
  switch (props.type) {
    case 'HomeOutlined':
      return HomeOutlined;
    case 'BarsOutlined':
      return BarsOutlined;
    case 'CalendarOutlined':
      return CalendarOutlined;
    case 'ProjectOutlined':
      return ProjectOutlined;
    case 'CaretDownOutlined':
      return CaretDownOutlined;
    case 'DownOutlined':
      return DownOutlined;
    case 'UpOutlined':
      return UpOutlined;
    case 'wechat':
      return WechatOutlined;
    case 'idcard':
      return IdcardOutlined;
    case 'phone':
      return PhoneOutlined;
    case 'search':
      return SearchOutlined;
    case 'fire':
      return FireOutlined;
    case 'question':
      return QuestionCircleOutlined;
    case 'right':
      return DoubleRightOutlined;
    default:
      return HomeOutlined;
  }
});
</script>

其中component应该是vue的基础组件,is绑定动态的数据,只要右边是一个数据就行了,iconComponent在这就是数据,右边是一个函数,根据父组件传递的参数return不同的icon值

在别的页面运用时

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值