element多层导航菜单
很久没写博客了原因就是懒,
刚下班今天写了个基于element导航菜单实现多层菜单(可以无限多层)
组件核心思想就是组件递归(这个有时候面试会问到)
可以看看这篇我写的简单文章《vue组件递归》
然后就判断children有没有内容,没内容就是选择项嘛,内容就是父菜单
只提供最基础实现功能各种回调可以参考element文档去改,我只写了主体
element导航菜单官方文档:https://element.eleme.cn/2.0/#/zh-CN/component/menu
效果图:


// ====== 组件: ==================
<template>
<div>
<template v-for="(item,index) in list">
<!-- 标题 -->
<template v-if="item.children.length">
<el-submenu :key="index" :index="item.index">
<template :index="item.index" slot="title">
<i :class="item.icon"></i>
<span>{{item.name}}</span>
</template>
<el-menu-item-group>
<sideBar :list="item.children"></sideBar>
</el-menu-item-group>
</el-submenu>
</template>
<!-- 选项 -->
<template v-else>
<el-menu-item :key="index" :index="item.index">
<i :class="item.icon"></i>
<span>{{item.name}}</span>
</el-menu-item>
</template>
</template>
</div>
</template>
<script>
export default {
name: "sideBar",
props: {
list: Array
}
};
</script>
<style></style>
// ====== 调用: ==================
<!-- html调用 -->
<el-menu>
<SideBar :list="sideBarData"></SideBar>
</el-menu> // 这个是数据格式
sideBarData: [
{
name: "菜单1",
index: "menu1",
icon: "el-icon-menu",
children: [
{
name: "菜单1-1",
index: "menu1-1",
icon: "el-icon-menu",
children: [
{
name: "菜单1-1-1",
index: "menu1-1-1",
icon: "el-icon-menu",
children: []
},
{
name: "菜单1-1-2",
index: "menu1-1-2",
icon: "el-icon-menu",
children: []
}
]
},
{
name: "菜单1-2",
index: "menu1-2",
icon: "el-icon-menu",
children: []
}
]
},
{
name: "菜单2",
index: "menu2",
icon: "el-icon-document-copy",
children: [
{
name: "数据集管理2",
index: "dataset2",
icon: "el-icon-document-copy",
children: []
},
]
},
{
name: "菜单2",
index: "menu3",
icon: "el-icon-folder",
children: []
}
]
补个截图可能会好看好理解些:

最后推荐个文章也是写“element多层导航菜单”不过这位大佬写的比我详细多了,
我写的只是初级版帮助理解而已,进阶的话看这篇文章是很好的:https://blog.csdn.net/qq_31126175/article/details/88824380
element多层导航菜单的更多相关文章
- Vue-cli项目与element导航菜单控件的结合使用以及遇到的问题
1.基本使用 第一种常用写法:导航菜单与 router-view 的配合使用 将所用的导航菜单数据编写成一个数组的形式,提高维护性: 在utils工具文件夹中建立utils.js文件: import ...
- vue+element UI递归方式实现多级导航菜单
介绍 这是一个是基于element-UI的导航菜单组件基础上,进行了二次封装的菜单组件,该组件以组件递归的方式,实现了可根据从后端接收到的json菜单数据,动态渲染多级菜单的功能. 使用方法 由于该组 ...
- vue+element UI以组件递归方式实现多级导航菜单
介绍 这是一个是基于element-UI的导航菜单组件基础上,进行了二次封装的菜单组件,该组件以组件递归的方式,实现了可根据从后端接收到的json菜单数据,动态渲染多级菜单的功能. 使用方法 由于该组 ...
- JavaScript实战(带收放动画效果的导航菜单)
虽然有很多插件可用,但为了共同提高,我做了一系列JavaScript实战系列的实例,分享给大家,前辈们若有好的建议,请务必指出,免得误人子弟啊! ( 原创文章,转摘请注明:苏福:http://www. ...
- Android 抽屉效果的导航菜单实现
Android 抽屉效果的导航菜单实现 抽屉效果的导航菜单 看了很多应用,觉得这种侧滑的抽屉效果的菜单很好. 不用切换到另一个页面,也不用去按菜单的硬件按钮,直接在界面上一个按钮点击,菜单就滑出来,而 ...
- SharePoint开发 - 自定义导航菜单(一)菜单声明与配置
博客地址 http://blog.csdn.net/foxdave 本篇描述自定义sharepoint菜单的一种方式,自定义菜单适用于一些门户等需求的网站 自定义的菜单有自己的数据源,可以是数据表,可 ...
- 我收集到的最好的jQuery和CSS3导航菜单
jQuery和CSS3导航菜单在网页设计和开发的重要组成部分之一.利用jQuery+CSS3实现可以做出拥有各种动画效果的漂亮菜单.在这里,我们收集了一些最好的jQuery+CSS3实现的导航菜单. ...
- layui禁止某些导航菜单展开
官网上查得监听导航菜单的点击 当点击导航父级菜单和二级菜单时触发,回调函数返回所点击的菜单DOM对象: element.on('nav(filter)', function(elem){ consol ...
- css 导航菜单+下拉菜单
一.导航菜单 1.横向导航 代码如下: <!doctype html> <html> <head> <meta charset="utf-8&quo ...
随机推荐
- swagger-ui不显示问题定位
1. 现象1 正常情况是 group会显示default/v2/api-docs 不知道是什么原因, 一个app可以展示,但另一个app不展示,配置也基本相同 1.1 定位过程 正常的app访问时的结 ...
- HDU 5978 To begin or not to begin
题目:HDU 5978 To begin or not to begin 思路: 题目意思是说:给出n个黑球,一个红球,拿到红球的人胜利.如果先手有优势的输出 1 ,没有优势的输出 2 ,机会均等则输 ...
- JSP_EL的回顾
在 JSP 页面中,使用标签库代替传统的 Java 片段语言来实现页面的显示逻辑已经不是新技术了,然而,由自定义标签很容易造成重复定义和非标准的实现.鉴于此,出现了 JSTL ( JSP Standa ...
- 关于php自学
自己本人现在正在自学php有一段时间了,不知道现在的学习状态咋样,在我看来应该属于不算很糟糕,但有点糟糕的状态. 如果算学习自学php的话,现在断断续续应该是有5个月了,按理说是差不多可以做出独立项目 ...
- [LC] 17. Letter Combinations of a Phone Number
Given a string containing digits from 2-9 inclusive, return all possible letter combinations that th ...
- 吴裕雄--天生自然HTML学习笔记:HTML <head>
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...
- springboot项目基础面试题
1.springboot与spring的区别. 引用自官方说法: java在集成spring等框架需要作出大量的配置,开发效率低,繁琐.所以官方提出 spring boot的核心思想:习惯优于配置.可 ...
- 吴裕雄--python学习笔记:sqlite3 模块的使用与学生信息管理系统
import sqlite3 cx = sqlite3.connect('E:\\student3.db') cx.execute( '''CREATE TABLE StudentTable( ID ...
- java 通过数据库名获得 该数据所有的表名以及字段名、字段类型
package com.nf.lc.sql_meta_data; import java.sql.*; import java.util.HashMap; import java.util.Map; ...
- mybatis的通用mapper小结
import tk.mybatis.mapper.entity.Example; //此包是tk下的1.定义一个dao层接口不需要任何方法 需要继承Mapper<类型> 2.在servic ...