vue+elementUI 做的递归组件
废话少说,直接上最新鲜的干货
当然,你得提前安装好bootstrap,router,element-ui,vue-axios
1.上递归组件,此处参考了某位大神的代码,具体不知道是谁,因为到处都有人用
<template>
<div> <template v-for='menu in menuList'>
<!-- 如果当前有子菜单,则显示 el-submenu ,在el-subment 里调用 递归组件 -->
<el-submenu
v-if='menu.children.length>0'
:index='menu.name'
:key="menu.id"
>
<template slot="title" >
<i :class="menu.icon"></i>
{{menu.name}}
</template>
<!-- 调用自身 此处是重点--> <MenuTree :menuList='menu.children'></MenuTree> </el-submenu>
<!-- 如果没有子菜单,则显示当前内容 -->
<el-menu-item
v-else
:index='menu.url'
:key='menu.id'
>
<i :class="menu.icon"></i>
{{menu.name}}
</el-menu-item> </template>
</div>
</template> <script>
export default {
name: "MenuTree",
props: {
menuList: {
type: Array,
required: false
}
}
}
</script> <style scoped> </style>
2.子组件菜单(Menus)
<template>
<el-scrollbar wrap-class="scrollbar-wrapper">
<el-menu
router
mode="vertical"
background-color="#551A8B"
text-color="#FFFFFF"
active-text-color="#409EFF"
v-if="menuList"
>
<!-- <sidebar-item v-for="menu in menuList" :key="menu.id" :item="menu" />-->
<MenuTree :menuList="menuList"></MenuTree>
</el-menu>
</el-scrollbar>
</template>
<script>
import MenuTree from "./MenuTree";
export default {
name:'Menus',
components: {
MenuTree,
},
props:{
menuList: {
type: Array,
required: false
}
}
}
</script>
<style >
a {
display: inline-block;
width: 100%;
overflow: hidden;
}
.el-menu {
border: none;
height: 100%;
width: 100% !important;
}
.is-active > .el-submenu__title{
color: #f4f4f5!important;
}
</style>
3.父组件(App.Vue)引用
<template>
<el-container>
<el-header>
XXXXXX
</el-header>
<el-container>
<el-aside >
<Menus :menuList="menuList"></Menus>
</el-aside>
<el-main>
<router-view></router-view>
</el-main>
</el-container>
</el-container>
</template> <script>
import Menus from "./views/Menus"; export default {
name: 'app',
components: {
Menus,
}, props: {
menuList: {
type: Array,
required: false
}
},
mounted(){
this.axios.get('/menu/list')
.then(resp => {
this.menuList = resp.data.menuList;
})
} }
</script> <style>
.el-header {
background-color: #0000AA;
color: #ffffff;
line-height: 60px;
font-size: 28px;
}
.el-aside {
background-color: #e3e3e3;
width: 200px !important;
} body .el-table th.gutter{
display: table-cell!important;
}
body .el-table colgroup.gutter {
display: table-cell !important;
} </style>
4.总结
递归组件得重中之重,父组件与子组件、递归组件中都有共同的props,传值的过程:父组件menuList --> 菜单组件menuList --> 递归组件使用menuList
vue+elementUI 做的递归组件的更多相关文章
- vue+elementUI项目,父组件向子组件传值,子组件向父组件传值,父子组件互相传值。
vue+elementUI项目,父组件向子组件传值,子组件向父组件传值,父子组件互相传值. vue 父组件与子组件相互通信 一.父组件给子组件传值 props 实现父组件向子组件传值. 1父组件里: ...
- 用HTML,Vue+element-UI做桌面UI
DSkin封装的WebUI开发模式开发桌面应用,使用Vue很方便.使用起来有点像WPF 下面用 element-UI 做个简单的例子. 运行效果:可以自己根据需求改布局效果. 主框架的element- ...
- vue.js 树菜单 递归组件树来实现
树形视图 Example: https://vuefe.cn/v2/examples/tree-view.html 参照前辈方法实现的,觉得不错,记录一下: 父组件: <!-- 菜单树 --&g ...
- Vue+elementUI 创建“回到顶部”组件
1.创建"回到顶部"组件 1 <template> 2 <transition name="el-fade-in"> 3 <div ...
- vue element-ui 做分页功能之封装
在 vue 项目中的 components 中 创建一个 文件夹,文件夹里创建一个 name(这个名字你随意取).vue <template> <div class=" ...
- 用Vue.js递归组件构建一个可折叠的树形菜单
在Vue.js中一个递归组件调用的是其本身,如: Vue.component('recursive-component', { template: `<!--Invoking myself! ...
- Vue两种组件类型介绍:递归组件和动态组件
一递归组件 递归组件的特性就是可以在自己的template模板中调用自己本身.值得注意的它必须设置name属性. // 递归组件 recursive.vue <template> < ...
- Vue.js递归组件实现动态树形菜单
使用Vue递归组件实现动态菜单 现在很多项目的菜单都是动态生成的,之前自己做项目也是遇到这种需求,翻看了官网案例,和网上大神的案例.只有两个感觉,官网的案例太简洁,没有什么注释,看起来不太好理解,大神 ...
- Vue组件的操作-自定义组件,动态组件,递归组件
作者 | Jeskson 来源 | 达达前端小酒馆 v-model双向绑定 创建双向数据绑定,v-model指令用来在input,select,checkbox,radio等表单控件.v-model指 ...
随机推荐
- 阶段3 1.Mybatis_01.Mybatis课程介绍及环境搭建_01.mybatis课程介绍
- python学习笔记:(二)基本数据类型
python中的变量不需要声明,每个变量中使用前都必须赋值,变量赋值以后该变量才会被创建. 在python中变量就是变量,他没有类型,我们所说的类型是变量所指的内存中对象的类型. python3中有六 ...
- 【奇技淫巧】使用 SSH 转发 Sock5 流量
标题:使用 SSH 转发 Sock5 流量 日期:2018-06-27 介绍:使用 ssh 来做个 sock5 的代理,穿透到内网中做后渗透 0x01. 基本信息 在 ubuntu(10.211.55 ...
- MyEclipse中的查找快捷键
MyEclipse中的查找快捷键 1.Ctrl+H:可以搜索文件,Java类名.方法名.包名等等. 例如:在MyEclipse中打开Search弹出框,或者在菜单中打开Search弹出框, 定位到 F ...
- JavaScript —— 用法 输出
用法 必须在<script>标签内 可以在<body>和<head>部分中 不限数量 <script> ... </script> 即可,不 ...
- 获取使用GitHub api和Jira api Authentication的方法
近段时间在搭建我司的用例管理平台,有如下需求: 1.需要根据项目--版本--轮次的形式来管理项目用例,用例统一保存在git工程. 2.执行用例时,如果用例执行失败,可以通过平台在Jira上提bug. ...
- 【ABAP系列】SAP 系统的消息类型分析 MESSAGE TYPE
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[ABAP系列]SAP 系统的消息类型分析 ME ...
- Eclipse连接SQL Server 2008数据库
一.准备材料 要能够使用数据库就要有相应的JDBC,所以我们要去Microsoft官网下载 https://www.microsoft.com/zh-cn/download/details.aspx? ...
- 安装libpng库
一. 安装libpng库前需要先安装zlib库,libpng库依赖zlib库 1.1. zlib库安装 1.1.1. 下载地址:http://www.zlib.net/ 1.1.2. 解压后得到zli ...
- input check复选框选择后修改<a>标签超链接href
1. 给复选框添加onclick事件 获取标签id <tbody> <c:forEach var="file" items="${files}" ...