把原先icon的图标用component进行替换 这里的最终解决方案是:利用v-show方法显示和隐藏解决的,先用click绑定一个方法,:is绑定你想要显示icon的内容,然后用v-if 和v-else <el-icon @click="handleCollapse"><component :is="Fold" v-if="isCollapse"></component><component :is="Expand" v-else></component...
<el-menu-itemv-for="item in noChildren":key="item.name":index="item.name"><el-icon><component:is="item.icon"></component></el-icon><template#title>{{ item.label }}</template></el-menu-item> 利用动态获取component的方法
<el-icon> <Fold /> </el-icon> 动态Icon 的使用方式 方式一 // 在main.ts注册Icon组件import*asIconsfrom'@element-plus/icons'constapp =createApp(App)Object.keys(Icons).forEach((key) =>{ app.componet(key,Icons[keyaskeyoftypeofIcons])// app.componet(key, Icons[key]) 等价于上面这行}) ...
首先在 main.ts 中全局引入@element-plus/icons-vue import*asElementPlusIconsVuefrom'@element-plus/icons-vue'; constapp = createApp(App); for(const[key, component]ofObject.entries(ElementPlusIconsVue)) { app.component(key, component); } 在sidebaritem中动态渲染 Icon image.png 我们发现图标加载出...
element-plus 里面的 icon,以前是字符串形式的,非常容易做成动态的效果,但是新版本改成了组件的形式,不支持字符串的形式了。 组件了如何动态呢? 其实也很简单,我们把需要的 icon组件 注册为全局的字典,key:组件 的形式,然后就可以把字符串转换为图标组件了。
Vue3 中使用Element Plus图标渲染是通过<el-icon><Plus /></el-icon>渲染 所以在使用Element UI动态变换图标时就可以通过:class的方式渲染图标 但是Element Plus就不行了,我们知道引用的图标是组件形式,组件的话就可以使用<component :is="xxx" />进行渲染了 ...
icon: 'el-icon-location', children: [ { path: '', name: 'stuList', component: List, meta: { title: '学生列表', }, }, { path: 'stuAdd', name: 'stuAdd', component: Add, meta: { title: '添加', }, hidden: true, // 不在菜单中显示 ...
Vue3 中使用Element Plus图标渲染是通过 <el-icon><Plus /></el-icon>渲染 所以在使用Element UI动态变换图标时就可以通过:class的方式渲染图标 但是Element Plus就不行了,我们知道引用的图标是组件形式,组件的话就可以使用 <component :is="xxx" />进行渲染...
Vue3 Element-Plus 一站式生成动态表单 背景 经常开发管理系统的小伙伴们肯定或多或少都遇到过表单需求,对于一个系统而言,动辄就是十几,几十个表单;如果每个表单都按照传统模式编写的话,简直要把前端累死,看着一段段大同小异的代码,也是提不上一点劲,甚至看着这些它懂你,你不想懂它的代码就犯恶心。
我们可以使用 动态组件的方式来 动态渲染icon 来达到和老师代码一致的效果 注意! 使用此方法 需要在 main文件内 添加一下代码 否则无效 npm install @element-plus/icons-vue 需要从 @element-plus/icons-vue 中导入所有图标并进行全局注册。 import * as ElementPlusIconsVue from '@element-plus/icons-vue...