vue中组件之间的相互调用,及通用后台管理系统左侧菜单树的迭代生成
由于本人近期开始学习使用vue搭建一个后端管理系统的前端项目,在左侧生成菜单树的时候遇到了一些问题。在这里记录下
分析:由于本人设定的菜单可以使多级结构,直接使用vue的v-for 遍历并不是很方便。那么这里采用递归的方式进行菜单树的生成
1.首先在使用vue-cli生成的项目中,在components下新建一个menu.vue组件。

menu.vue的内容为:
<template>
<div class="wMenu">
<label v-for="(menu, index) in menuList"> <el-submenu v-if="menu.havingChild" :index="menu.id">
<template slot="title">
<i :class="menu.icon"></i>
<span slot="title">{{ menu.menuName }}</span>
</template>
<wMenu :menuList="menu.children"></wMenu>
</el-submenu> <el-menu-item v-if="!menu.havingChild" :index="menu.id">
<i :class="menu.icon"></i>
<span slot="title">{{ menu.menuName }}</span>
</el-menu-item>
</label>
</div>
</template> <script>
export default {
name: 'wMenu',
props: ['menuList'],
data () {
return {
}
},
methods: {
getMenuSize() {
return this.menuList.length;
}
}
}
</script> <!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped> </style>
这里需要注意的是在第10行的时候,是需要通过我们定义的组件名称调用自己,将子节点的菜单数据传入组件中,实现递归遍历。
2.接下来就要在父组件中调用,也就是我这边定义的layout.vue

首先引入要调用的组件

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

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

完整代码请到我的github上查看 https://github.com/wylsource/vue-elementui
vue中组件之间的相互调用,及通用后台管理系统左侧菜单树的迭代生成的更多相关文章
- vue中组件之间的通信
一.vue中组件通信的种类 父组件向子组件的通信 子组件向父组件的通信 隔代组件之间的通信 兄弟 组件 之间的通信 二.实现通信的方式 props vue自定义的事件 消息订阅与发布 vuex sl ...
- Vue中组件之间的通信方式
vue是数据驱动视图更新的框架, 所以对于vue来说组件间的数据通信非常重要,那么组件之间如何进行数据通信的呢? 本文会介绍组件间通信的8种方式如下图所示, 并介绍在不同的场景下如何选择有效方式实现的 ...
- VUE 自定义组件之间的相互通信
一.自定义组件 1.全局自定义组件 我们在var vm = new Vue({});的上面并列写上Vue.component('自定义组件名',{组件对象});来完成全局自定义组件的声明.示例代码如下 ...
- 前端vue框架 父组件与子组件之间的相互调用
子组件调用父组件东西: 1.在父组件与子组件契合的标签的的template模板中绑定 v-bind:自定义一个名字=“要调用的名字” 2.在子组件的script中props:["自定义的名字 ...
- Vue父子组件之间的相互通信
组件是Vue知识体系中最重要的一部分之一,父子组件由于作用域的不同,无法直接对对方的数据进行操作.它们之间的数据传递都是通过中间介质进行的,父组件给子组件传值是通过props属性,而子组件给父组件传值 ...
- Vue 父子组件之间的互相调用方法
第一种方法 直接在子组件中通过this.$parent.event来调用父组件的方法 父组件 <template> <div> <child></child& ...
- vue中兄弟之间组件通信
我们知道Vue中组件之间的通信有很多方式,父子之间通信比较简单,当我们使用vuex时候,兄弟组件之间的通信也很好得到解决 当我们项目较小时候,不使用vuex时候Vue中兄弟组件之间的通信是怎样进行的呢 ...
- Vue中组件间通信的方式
Vue中组件间通信的方式 Vue中组件间通信包括父子组件.兄弟组件.隔代组件之间通信. props $emit 这种组件通信的方式是我们运用的非常多的一种,props以单向数据流的形式可以很好的完成父 ...
- JAVA和C/C++之间的相互调用。
在一些Android应用的开发中,需要通过JNI和 Android NDK工具实现JAVA和C/C++之间的相互调用. Java Native Interface (JNI)标准是java平台的一部分 ...
随机推荐
- centos 虚拟机桥接
/etc/sysconfig/network-scripts/ifcfg-eth0 配置文件 vi ifcfg-eth0 DEVICE=eth0HWADDR=00:0C:29:B8:B5:65TYPE ...
- Ubuntu系统下将默认的python2.7升级到3.5
在ubuntu 的终端中用代码下载最新的Python sudo apt-get install python3 系统会提示输入Linux 的密码,输入密码后下载 刚才下载的Python程序被安装在us ...
- JMeter-接口自动化之正则表达式关联
jmeter中,接口自动化的关键在于参数关联.比如需要登录的接口,如何调用登录口令?一个增删改查的闭环,如何将接口参数上下传递?下面就以实际的例子来仔细说一说 1:登录接口 这里有一个实际的登录接口, ...
- 简单的vuex 的使用
1. npm install vuex 2. 在src 下 新建文件夹 store (为什么是这个单词,vuex 是用来状态管理的,用储存一些组件的状态,取存贮之意),store 文件下 新建文件 i ...
- Android命令之-------ADB命令大全
1.显示当前运行的全部模拟器: adb devices2.启动ADB adb start-server3.停止ADB adb kill-server4.安装应用程序: adb ...
- java_web学习(七) MySQL的配置与安装
一:下载MySQL 1.进入oracle官网 2. 3. 4. 5. 6. 7. 网址:https://dev.mysql.com/downloads/file/?id=469273 二:配置MySQ ...
- Machine Learning - week 3 - Overfitting
The Problem of Overfitting 如果有太多的 features,假设可能与训练数据太匹配了以致于预测未来的数据不准确.如下图: 解决 overfitting 1. 既然是由太多的 ...
- [Link-Cut-Tree]【学习笔记】
可以按照<Utopiosphere>的调唱出来 “Link-Cut ,Time doesn’t stop .Prepare your doubts ,Eat them up” 参考资料: ...
- msfvenom向apk注入payload
首先安装apt-get install apkinjector 这个东西,msfvenom重新组装apk的时候会自动调用 msfvenom -x /路径/apk android/meterpreter ...
- C/C++中inline用法详解
(一)inline函数(摘自C++ Primer的第三版) 在函数声明或定义中函数返回类型前加上关键字inline即把min()指定为内联. inline int min(int first, int ...