vue element html左侧菜单,vue生成element左侧菜单

首先来总结element ui 官方文档的左侧菜单结构,带有el-submenu为子级节点,el-menu-item表示没有下级。当然,菜单不能写死,因为菜单也许不止两级,所以我们需要递归来实现。根据当前节点是否有下级去判断,如果有下级,则继续调用子级,直到没有下级为止,下面我贴上左侧菜单所有的代码:

请求数据格式

[

{

name: "首页",

id: -1,

icon: "el-icon-picture-outline-round",

url: "/index",

children: []

},

{

name: "按钮",

id: 20,

icon: "el-icon-message-solid",

url: "/button",

children: []

},

{

name: "测试1",

id: 1,

icon: "el-icon-s-claim",

url: "",

children: [

{

id: 4,

parentid: 1,

name: "测试1-1",

icon: "el-icon-chat-dot-round",

url: "",

children: [

{

id: 8,

parentid: 1,

name: "测试1-1-1",

icon: "el-icon-cloudy",

url: "/test",

children: []

},

{

id: 9,

parentid: 1,

name: "测试1-1-2",

icon: "el-icon-files",

url: "/test1",

children: []

}

]

},

{

id: 5,

parentid: 1,

name: "测试1-2",

icon: "el-icon-shopping-cart-1",

url: "/test3",

children: []

}

]

},

{

name: "测试2",

id: 2,

icon: "el-icon-menu",

url: "",

children: [

{

id: 6,

parentid: 2,

name: "测试2-1",

icon: "el-icon-folder-checked",

url: "",

children: []

},

{

id: 7,

parentid: 2,

name: "测试2-2",

icon: "el-icon-folder-remove",

url: "",

children: []

}

]

},

{

name: "测试3",

id: 3,

icon: "el-icon-monitor",

url: "",

children: []

}

]

menu.vue

import subMenu from "./subMenu";

export default {

name: "menuList",

components: {

subMenu

},

data() {

return {

collapse: false, //是否折叠

list: [], //当行菜单数据源

backgroundColor: "#304156", //导航菜单背景颜色

textColor: "#BFCBD9", //导航菜单文字颜色

logo: "LOGO" //logo

};

}

};

.el-menu {

border-right: none;

a {

text-decoration: none;

}

}

.logo-con {

height: 64px;

padding: 10px;

.title {

position: relative;

text-align: center;

font-size: 20px;

height: 64px;

line-height: 64px;

span {

padding: 0 5px 0 0;

color: #409eff;

font-size: 20px;

}

}

}

submenu.vue

{{props.data.name}}

{{item.name}}

export default {

name: "submenu",

props: {

data: [Array, Object]

}

};

.el-submenu {

.el-menu-item {

padding: 0;

}

}

效果图

63169a90bcb9b1d1fb226d36f473c648.png

vue 首页导航+左侧菜单

1. Mock.js 前后端分离开发开发过程当中,经常会遇到以下几个尴尬的场景: 1. 老大,接口文档还没输出,我的好多活干不下去啊! 2. 后端小哥,接口写好了没,我要测试啊! 前后端分离之后,前端 ...

使用layui-tree美化左侧菜单,点击生成tab选项

layui-tree美化左侧菜单 html

随机推荐

php 读取json数据文本所遇到的问题

json数据属于特殊的字符串,一般自己写的json数据不要误加空格,回车,换行, 若是从其他文件读取过来的json数据很有可能带有空格,回车,换行等符号,导致使用json_decode()转诚数组失败 ...

SQL入门经典(一)之简介

今天是我第一天开通博客,也是我的第一篇博客.以后为大家带来第一篇关于学习技术性文章,这段时间会为大家带来是SQL入门学习.希望大家坚持读下去,因为学历有限.我也是初学者.语言表达能力不好和知识点不足, ...

用一个下午从零开始搭建一个基础lbs查询服务

背景 现在做一个sns如果没有附近的功能,那就是残缺的.网上也有很多现成的lbs服务,封装的很完整了. 我首先用了下百度lbs云,但是有点不适合自己的需要,因此考虑用mongodb建一个简单的lbs服 ...

SQL存储过程调试

转自:http://www.cnblogs.com/xiangzhong/archive/2012/10/27/2742974.html 今天突然有同事问起,如何在sqlserver中调试存储过程(我 ...

VS2012 编译GDAL

先安装VS 2012, 然后下载GDAL最新版本代码,解压. 用管理员权限打开Developer Command Prompt for VS2012终端,进入代码目录. 然后运行命令: nmake / ...

C++库研究笔记——函数名的宏定义

6.47 Function Names as Strings:http://gcc.gnu.org/onlinedocs/gcc/Function-Names.html GCC provides th ...

Cocos Creator 监听安卓屏幕下方返回键

addEscEvent = function(node){ cc.eventManager.addListener({ event: cc.EventListener.KEYBOARD, onKeyP ...

Windos下pip配置豆瓣源

C:\Users\liche\pip 下创建pip.ini文件 pip.ini [global] index-url = http://pypi.douban.com/simple [install] ...

Hibernate的主配置文件hibernate.cfg.xml

1:Hibernate的主配置文件的名字必须是hibernate.cfg.xml(主要配置文件中主要配置:数据库连接信息,其他参数,映射信息):常用配置查看源码:Hibernate\hibernate ...

Redis脚本

8.启动 /usr/local/bin/redis-server /etc/redis/redis.conf ./redis-server /home/work/redis/redis.conf &a ...

环境配置 Node 下载地址http://nodejs.cn/ 安装文件下有一个绿色的图片交node.exe 点击运行 输入node -v进行检测是否安装成功 使用vue-cli(脚手架)搭建项目 vue-cli是vue官方提供的用域搭建基于vue+webpack_es6项目的脚手架工具 在线文档:https://github.com/vuejs/vue-cli 操作: 1.npm install -g vue-cli:全局下载工具 2.vue init webpack 项目名:下载基于webpack模板项目 3.cd 项目名:进入项目目录 4.npm install :下载项目依赖的所有模块 5.npm run dev :运行项目 6.访问项目:localhost:8080 项目目录结构 src assets:存放照片、css、js css js img components:存放组件 lib:存放模拟数据 router:配置路由 store:存放vuex vuex的安装:cd x项目目录 cnpm install vuex --save views:存放所有单页面 配置访问端口号: 根目录下有一个config文件夹,看名字就知道与配置有关,打开config目录下的index.js dev: { env: require('./dev.env'), port: 8092, autoOpenBrowser: true, assetsSubDirectory: 'static', assetsPublicPath: '/', proxyTable: {}, } 项目目录下:https://blog.csdn.net/weixin_39378691/article/details/83784403 1.安装elementUI:cd进入项目根目录,npm i element-ui -S 2.引入elementUI组件(main.js文件) import Element from 'element-ui' import 'element-ui/lib/theme-chalk/index.css' Vue.use(Element, { size: 'small' }) 项目目录下:https://blog.csdn.net/weixin_41432849/article/details/81988058 1.安装jquery:cd进入项目根目录, npm install jquery --save 2.在项目 build 里的webpack.base.conf.js 里加载webpack文件,注意,要放在配置文件第一行; const webpack = require('webpack') 3.在module.exports的最后加入 , plugins:[ new webpack.ProvidePlugin({ $:"jquery", jQuery:"jquery", jquery:"jquery", "window.jQuery":"jquery" }) ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值