之前使用class的方式设置菜单图标,element plus 后面替换svg icon后不支持font icon,文档没有批量引入的方法,只能用一个引入一个,下面一次将所有的icon引入,批量注册后可直接在页面的任何地方使用。
// main.js 引入所有icons 批量注册
import { createApp } from 'vue'
import App from './App.vue'
import * as ElIconModules from '@element-plus/icons'
const app = createApp(App)
for(let iconName in ElIconModules){
if (Reflect.has(ElIconModules, iconName)) {
app.component(iconName, ElIconModules[iconName])
}
}
// 使用
<el-icon :size="20">
<search />
</el-icon>
// 用于侧边菜单
<el-icon :size="20">
<component :is="item.meta.icon" /> // is属性会将这个节点渲染成注册后的组件
</el-icon>
效果