Vue+elementUI 自定义动态数据菜单导航组件实现展开收缩遇到问题

编程入门 行业动态 更新时间:2024-10-18 19:21:52

Vue+elementUI <a href=https://www.elefans.com/category/jswz/34/1771438.html style=自定义动态数据菜单导航组件实现展开收缩遇到问题"/>

Vue+elementUI 自定义动态数据菜单导航组件实现展开收缩遇到问题

Vue+elementUI 自定义动态数据菜单导航组件实现展开收缩遇到问题

自定义组件包含在 fragment下面, 不是div 不然展开和收缩会出现字体无法隐藏的问题

如下:
解决菜单导航折叠后文字不隐藏

出现这个问题是因为我们在<el-menu>嵌套中出现了意料之外的<div>,而<el-menu>标签本身希望里面嵌套的是<el-menu-item>,<el-submenu>,<el-menu-item-group>其中之一
但是我们又不能直接删掉<div>,因为<template>中包含的必须是一个根标签,而v-for会形成不确定的并列标签

项目中安装vue-fragment
cnpm install --save vue-fragment

在main.js中引入
// main.js
import Fragment from ‘vue-fragment’
Vue.use(Fragment.Plugin)

修改为,fragment下面也是由template包裹

代码展示
自定义组件:

<template><fragment class="navMenu"><template v-for="(navMenu) in navMenus"><el-menu-itemv-if="navMenu.childs == null &&navMenu.entity &&navMenu.entity.state === 'ENABLE'":key="navMenu.entity.id":data="navMenu":index="navMenu.entity.name":route="navMenu.entity.value"><i :class="navMenu.entity.icon"></i><span slot="title" >{{ navMenu.entity.alias }}</span></el-menu-item><el-submenuv-if="navMenu.childs && navMenu.entity && navMenu.entity.state === 'ENABLE'":key="navMenu.entity.id":data="navMenu":index="navMenu.entity.name"><template slot="title"><i :class="navMenu.entity.icon"></i><span> {{ navMenu.entity.alias }}</span></template><NavMenu :navMenus="navMenu.childs"></NavMenu></el-submenu></template></fragment>
</template><script>
export default {name: "NavMenu",props: ["navMenus"],data() {return {};},methods: {},
};
</script><style scoped lang="scss">
.navMenu{width: 100%;height: 100%;// height: 50vh;00
}
</style>

完成后效果图:

到这就OK了

更多推荐

Vue+elementUI 自定义动态数据菜单导航组件实现展开收缩遇到问题

本文发布于:2024-02-27 05:38:42,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1705381.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:自定义   组件   菜单   动态   数据

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!