动态生成el-icon
时间: 2023-09-24 16:04:40 浏览: 89
根据提供的引用内容,动态生成el-icon的方法如下:
在main.ts文件中,首先安装@element-plus/icons包,并引入需要使用的图标,例如Fold图标。然后通过全局注册组件的方式将图标注册为全局组件。具体代码如下:
```javascript
import * as Icons from '@element-plus/icons'
Object.keys(Icons).forEach((key) => {
app.component(key, Icons[key as keyof typeof Icons])
})
```
在父组件中,使用el-menu组件,并通过自定义组件CustomElMenu来动态生成el-icon。在menuList数组中,每个对象都包含一个icon字段,该字段用于指定el-icon的样式。如果icon字段包含'el-icon',则使用老版本的el-icon样式;否则,使用全局注册的组件作为el-icon的样式。具体代码如下:
```html
<el-menu default-active="1" class="el-menu-vertical" @open="handleOpen" @close="handleClose" background-color="#ffffff" text-color="#000" active-text-color="#FF660A">
<CustomElMenu :list="menuList"></CustomElMenu>
</el-menu>
```
```html
<template #title>
<i v-if="aside.meta.icon && aside.meta.icon.includes('el-icon')" :class="aside.meta.icon"></i>
<component class="icons" v-else :is="aside.meta.icon"></component>
<span>{{ aside.meta.title }}</span>
</template>
```
这样,就可以根据menuList数组中的icon字段动态生成el-icon了。如果icon字段包含'el-icon',则使用老版本的el-icon样式;否则,使用全局注册的组件作为el-icon的样式。
阅读全文