微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

vue左侧菜单,树形图递归实现代码

学习vue有一段时间了,最近使用vue做了一套后台管理系统,左侧菜单需求是这样的,可以多层,数据由后台传递。也因为自己对官方文档的不熟悉使得自己踩了不少坑,今天写出来和大家一起分享

效果图如下所示:

先说说遇到的坑,由于是子父组件,当时传递使用的是子父组件的传递,但是这时候只能获取到第一层的数据,第二层往后获取不到数据,踩了一下午坑以后才知道,子组件使用了递归组件,这时候他已经不能往父组件传递了,子传父,只能逐层传递这时候已经隔层了,所以我使用了非子父组件传递,两个页面都引入bus.js,这里不懂的请百度

bus.js

rush:js;"> import Vue from 'vue' export default new Vue

父组件内容

rush:js;">

模拟后台数据

rush:js;"> theModel:[{ 'id': '1','menuName': '导航1','menuCode': '10','menuUrl':'','childMenus': [ { 'menuName': '用户管理','menuCode': '11','menuUrl':'/home','menuPath':'','childMenus':[{ 'menuName': '11111','menuCode': '12','menuUrl':'/systemjuri','childMenus': [] }] },{ 'menuName': '角色管理','childMenus': [] },{ 'menuName': '菜单管理','menuUrl':'/systemmenu','menuCode': '13','menuPath':'http://10.63.195.214:8080/menuManage/html/index_3.html','childMenus':[] }] },{ 'id': '1','menuName': '导航2','childMenus':[] }],

父组件引入子组件

rush:js;"> import myTree from './treeMenu.vue' export default { components: { myTree },}

父组件接受子组件传递的数据

bus.$on("childEvent",function(transmit) {})

下面是子组件内容,子组件名称treeMenu,name: 'treeMenu',

<div class="jb51code">
<pre class="brush:js;">

由于用了递归组件所以name需要和对应起来

总结

以上所述是小编给大家介绍的vue左侧菜单,树形图递归实现代码。编程之家 jb51.cc 收集整理的教程希望能对你有所帮助,如果觉得编程之家不错,可分享给好友!感谢支持

原文地址:https://www.jb51.cc/vue/30770.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐