vue中组件之间的相互调用,及通用后台管理系统左侧菜单树的迭代生成

 

由于本人近期开始学习使用vue搭建一个后端管理系统的前端项目,在左侧生成菜单树的时候遇到了一些问题。在这里记录下

分析:由于本人设定的菜单可以使多级结构,直接使用vue的v-for 遍历并不是很方便。那么这里采用递归的方式进行菜单树的生成

1.首先在使用vue-cli生成的项目中,在components下新建一个menu.vue组件。

menu.vue的内容为:

 1 <template>
 2   <div class="wMenu">
 3      <label v-for="(menu, index) in menuList">
 4 
 5        <el-submenu v-if="menu.havingChild" :index="menu.id">
 6          <template slot="title">
 7             <i :class="menu.icon"></i>
 8             <span slot="title">{{ menu.menuName }}</span>
 9           </template>
10           <wMenu :menuList="menu.children"></wMenu>
11        </el-submenu>
12       
13        <el-menu-item  v-if="!menu.havingChild" :index="menu.id">
14          <i :class="menu.icon"></i>
15          <span slot="title">{{ menu.menuName }}</span>
16        </el-menu-item>
17     </label>
18   </div>
19 </template>
20 
21 <script>
22 export default {
23   name: 'wMenu',
24   props: ['menuList'],
25   data () {
26     return {
27     }
28   },
29   methods: {
30     getMenuSize() {
31       return this.menuList.length;
32     }
33   }  
34 }
35 </script>
36 
37 <!-- Add "scoped" attribute to limit CSS to this component only -->
38 <style scoped>
39  
40 </style>

这里需要注意的是在第10行的时候,是需要通过我们定义的组件名称调用自己,将子节点的菜单数据传入组件中,实现递归遍历。

 

2.接下来就要在父组件中调用,也就是我这边定义的layout.vue

首先引入要调用的组件

然后在当前组件中定义使用该组件

接下来就可以直接使用了,

 

 完整代码请到我的github上查看 https://github.com/wylsource/vue-elementui

转载于:https://www.cnblogs.com/longjee/p/8377823.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值