vue3 使用element-plus动态渲染Icon图标

博客介绍了Element-Plus和Element-UI中使用图标时的不同。Element-UI可直接绑定class动态渲染图标,而Element-Plus因使用svg图标,不能用此方式。在Element-Plus中需先给图标对象/数组,使用时在特定标签里传:is动态绑定图标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 element-plus中使用icon图标与elemnet-ui中不一样   

 

 element-ui中可以直接绑定:class='el-icon-deit‘动态的渲染出自己想要的图标

<el-icon :size="20">
    <Edit />
  </el-icon>

 element-plus中由于使用svg图标所以不能用element-ui的方式直接动态的绑定class

 element-plus中动态绑定icon图标先要给一个你需要得图标的对象/数组

使用图标时在<el-icon></el-icon>中的<component :is="icons[item.id]" />传:is='icons[item.id]'就可以动态绑定自己想要得图标

 

以上纯属个人观点  可以借鉴学习,我也在不断学习   

### 动态生成Element Plus图标的方法 在Vue3项目中实现动态生成Element Plus图标的用法涉及几个关键步骤。为了确保图标能够被正确加载并显示,需遵循特定的方式引入和注册这些组件。 #### 安装依赖库 首先确认已经安装了`element-plus`以及其图标包: ```bash npm install element-plus @element-plus/icons-vue ``` #### 导入所需图标 对于按需导入单个图标的情况,在脚本部分通过ES6语法单独引入所需的图标组件[^2]: ```javascript import { Star as IconStar, Search as IconSearch } from &#39;@element-plus/icons-vue&#39;; ``` 接着可以在模板里像常规组件一样使用它们: ```html <template> <div> <!-- 使用星形图标 --> <icon-star /> <!-- 或者绑定到变量来决定哪个图标应该渲染 --> <component :is="currentIcon"></component> </div> </template> <script setup> // 假设 currentIcon 是响应式的 prop 或 data 属性 const props = defineProps({ currentIcon: String, }); </script> ``` #### 动态切换图标 如果希望基于某些条件或状态变化而改变所使用图标,则可以利用`:is`特性配合计算属性或者方法返回不同的图标名称字符串[^4]: ```html <template> <button @click="toggleIcon"> Toggle Icon <component :is="dynamicIconComponent"/> </button> </template> <script setup> import { ref, computed } from &#39;vue&#39; import { Star as IconStar, Location as IconLocation } from &#39;@element-plus/icons-vue&#39; let isStarActive = ref(true) function toggleIcon() { isStarActive.value = !isStarActive.value; } const dynamicIconComponent = computed(() => isStarActive.value ? IconStar : IconLocation ); </script> ``` 上述代码展示了如何创建一个按钮点击事件处理器 `toggleIcon()` 来切换两个不同类型的图标之间的显示;同时定义了一个计算属性 `dynamicIconComponent` ,它根据布尔值的状态返回对应的图标组件对象。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值