Vue3 element-plus动态Icon图标解决方法

效果展示:

图标名称则在官网列举的这一堆:

先按照官网上的说明安装

Icon 图标 | Element Plus (element-plus.org)

# 选择一个你喜欢的包管理器

# NPM
$ npm install @element-plus/icons-vue
# Yarn
$ yarn add @element-plus/icons-vue
# pnpm
$ pnpm install @element-plus/icons-vue

然后在main.js或者main.ts中写上

import * as Icons from '@element-plus/icons-vue'
app.config.globalProperties.$icon = Icons

这样就设置了一个全局变量

在组件中使用

<script setup>
import { RouterView } from 'vue-router'
let myIcon = 'View'; //假设这里是后端传回的icon字符串
</script>

<template>
  <el-icon>
    <component :is="$icon[myIcon]" />
  </el-icon>
  <RouterView />
</template>

<style scoped>
</style>

### Element Plus动态图标使用方法Vue 项目中利用 `Element Plus` 组件库时,可以通过 `<component>` 动态组件标签来实现图标动态加载。对于希望依据不同条件展示不同样式的场景来说非常有用。 当需要根据属性值的变化而改变显示的图标时,可以采用如下方式: ```html <template> <div> <!-- 使用 component 标签绑定 is 属性 --> <component :is="currentIcon"></component> <!-- 或者更具体地指定来自 element-plus图标组件 --> <component :is="iconComponent" class="commonIconClass"></component> </div> </template> <script setup> import { ref, computed } from &#39;vue&#39;; // 假设这里有一些逻辑决定当前应该使用的图标名称 const iconName = ref(&#39;Plus&#39;); // 这里只是一个初始值例子 // 计算属性用于返回实际要渲染的组件名 const currentIcon = computed(() => { switch (iconName.value.toLowerCase()) { case &#39;plus&#39;: return &#39;el-icon-circle-plus-outline&#39;; // 替换成对应的 el-icon 名字 default: return &#39;&#39;; } }); // 如果直接引用 element plus 图标,则可以直接设置为 import 路径 const iconComponent = computed(() => () => `el-icon-${iconName.value}`); // 注意这取决于具体的图标命名空间和版本支持情况 </script> ``` 上述代码片段展示了如何基于变量 `iconName` 来控制最终呈现哪个图标[^2]。此方法允许开发者灵活调整页面上各个位置所使用的图标而不必硬编码每一个实例。 为了进一步增强用户体验,在处理像树形结构这样的复杂界面元素时,还可以结合 CSS 和 JavaScript 对这些图标进行更加细致化的定制化操作,比如针对节点的状态(未展开、已展开、无子节点)应用特定样式或行为[^1]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值