vue导航栏部分的动态渲染实例


Posted in Javascript onNovember 01, 2019

根据公司项目的需求,使用的是element-ui的nav-menu组件实现动态渲染左侧导航条的功能,这里我只写到了四级菜单。

代码部分:

<el-menu class='el-menu-vertical-demo' :router='true' v-for='(item, index) in navMenu' :key='index'>
  <el-submenu v-if='item.childs' :index='item.name' :route = 'item.value' class='edit_wrapper' @mouseover.native="overShow" @mouseout.native="outHide">
  <template slot='title'>
   <i :class='item.icon'></i>
   <span slot='title'>{{item.alias}}</span>
   <i class='iconfont icon-shenpi edit' v-show='haha'></i>
  </template>
  <el-submenu v-if='item1.childs' v-for= '(item1, index) in item.childs' :key='item1.name' :index='item1.name' :route='item1.value'>
   <template slot='title'>
   <i :class='item1.icon'></i>
   <span slot='title'>{{item1.alias}}</span>
   </template>
   <el-submenu v-for= '(item2, index) in item1.childs' :key='item2.name' v-if='item2.childs' :index='item2.name' :route = 'item2.value'>
   <template slot='title'>
    <i :class='item2.icon'></i>
    <span slot='title'>{{item2.alias}}</span>
   </template>
   <el-submenu v-for= '(item3, index) in item2.childs' :key='item3.name' v-if='item3.childs' ::index='item3.name' :route = 'item3.value'>
    <template slot='title'>
    <i :class='item3.icon'></i>
    <span slot='title'>{{item3.alias}}</span>
    </template>
    <el-menu-item v-for= '(item4, index) in item3.childs' :key='item3.name' v-if='item4.childs == null' :index='item4.name' :route = 'item4.value'>
    <span>{{item4.alias}}</span>
    </el-menu-item>
   </el-submenu>
   <el-menu-item v-for= '(item3, index) in item2.childs' :key='item3.name' v-if='item3.childs == null' :index='item3.name' :route = 'item3.value'>
    <span>{{item3.alias}}</span>
   </el-menu-item>
   </el-submenu>
   <el-menu-item v-for= '(item2, index) in item1.childs' :key='item2.name' v-if='item2.childs == null' :index='item2.name' :route = 'item2.value'>
   <span>{{item2.alias}}</span>
   </el-menu-item>
  </el-submenu>
  <el-menu-item v-for= '(item1, index) in item.childs' :key='item1.name' v-if='item1.childs == null' :index='item1.name' :route = 'item1.value'>
   <span>{{item1.alias}}</span>
  </el-menu-item>
  </el-submenu>
  <el-menu-item v-if='item.childs == null' :index='item.name' :route = 'item.value'>
  <i :class='item.icon'></i>
  <span slot='title'>{{item.alias}}</span>
  </el-menu-item>
  </el-menu>

数据部分:

navMenu: [{
  name: 'serveList',
  icon: 'iconfont icon-shezhi',
  alias: '金融服务目录',
  value: '',
  childs: [
  {
  name: 'channelManage',
  icon: '',
  alias: '渠道管理',
  value: '',
  childs: [
  {
   name: 'channelManage_in',
   icon: '',
   alias: '渠道内部管理',
   value: '',
   childs: [
   {
   name: 'financial',
   icon: '',
   alias: '金融类',
   value: '/serveManage/financial',
   },
   {
   name: 'no_financial',
   icon: '',
   alias: '非金融类',
   value: '/serveManage/no_financial',
   },
   {
   name: 'query_class',
   icon: '',
   alias: '查询类',
   value: '/serveManage/query_class',
   },
   {
   name: 'square_class',
   icon: '',
   alias: '冲正类',
   value: '/serveManage/square_class',
   },
   ]
  },
  {
   name: 'process_services',
   icon: '',
   alias: '流程服务',
   value: '/serveManage/process_services'
  },
  {
   name: 'cooperation_services',
   icon: '',
   alias: '合作方服务',
   value: '/serveManage/cooperation_services'
  },
  ]
  },
  {
  name: 'saveManage',
  icon: '',
  alias: '风险管理',
  value: '/serveManage/saveManage'
  }, {
  name: 'manageDecision',
  icon: '',
  alias: '管理决策',
  value: '/serveManage/manageDecision'
  }, {
  name: 'businessSupport',
  icon: '',
  alias: '业务支持',
  value: '/serveManage/businessSupport'
  }, {
  name: 'technicalSupport',
  icon: '',
  alias: '技术支持',
  value: '/serveManage/technicalSupport'
  }
  ]
 }, {
  name: 'serveRelation',
  icon: 'iconfont icon-shezhi',
  alias: '服务血缘关系',
  value: '/serveManage/serveRelation'
 }]

注意:因为含有childs的目录是没有路由的,所以可以把它的value值设为空。

效果展示:

vue导航栏部分的动态渲染实例

这样我们就可以在其他页面引入该组件就可以了。

以上这篇vue导航栏部分的动态渲染实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
解决Extjs 4 Panel作为Window组件的子组件时出现双重边框问题
Jan 11 Javascript
JQuery的attr 与 val区别
Jun 12 Javascript
基于Vue.js实现数字拼图游戏
Aug 02 Javascript
基于JS实现回到页面顶部的五种写法(从实现到增强)
Sep 03 Javascript
jQuery 判断元素整理汇总
Feb 28 Javascript
jquery学习笔记之无new构建详解
Dec 07 jQuery
浅谈vue项目优化之页面的按需加载(vue+webpack)
Dec 11 Javascript
在微信小程序中渲染HTML内容的方法示例
Sep 28 Javascript
Vue实现移动端页面切换效果【推荐】
Nov 13 Javascript
Element input树型下拉框的实现代码
Dec 21 Javascript
在LayUI图片上传中,解决由跨域问题引起的请求接口错误的方法
Sep 24 Javascript
vue 自定义组件添加原生事件
Apr 21 Vue.js
微信小程序自定义tabbar custom-tab-bar 6s出不来解决方案(cover-view不兼容)
Nov 01 #Javascript
Vue-cli项目部署到Nginx服务器的方法
Nov 01 #Javascript
浅谈vue-router路由切换 组件重用挖下的坑
Nov 01 #Javascript
浅析js实现网页截图的两种方式
Nov 01 #Javascript
javascript使用链接跨域下载图片
Nov 01 #Javascript
async/await让异步操作同步执行的方法详解
Nov 01 #Javascript
浅谈Three.js截图并下载的大坑
Nov 01 #Javascript
You might like
索尼SONY ICF-SW7600GR电路分析与改良
2021/03/02 无线电
php的一个登录的类 [推荐]
2007/03/16 PHP
Codeigniter注册登录代码示例
2014/06/12 PHP
值得分享的php+ajax实时聊天室
2016/07/20 PHP
php生成与读取excel文件
2016/10/14 PHP
ThinkPHP5.1表单令牌Token失效问题的解决
2019/03/22 PHP
Laravel6.0.4中将添加计划任务事件的方法步骤
2019/10/15 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
2020/05/02 PHP
学习YUI.Ext 第四天--对话框Dialog的使用
2007/03/10 Javascript
javascript 函数及作用域总结介绍
2013/11/12 Javascript
一个简单的jQuery插件ajaxfileupload.js实现ajax上传文件例子
2014/06/26 Javascript
javascript制作坦克大战全纪录(1)
2014/11/27 Javascript
深入浅析JavaScript中prototype和proto的关系
2015/11/15 Javascript
Bootstrap学习笔记之css组件(3)
2016/06/07 Javascript
详解jQuery lazyload 懒加载
2016/12/19 Javascript
Ionic3实现图片瀑布流布局
2017/08/09 Javascript
vue中使用ueditor富文本编辑器
2018/02/08 Javascript
JS温故而知新之变量提升和时间死区
2019/01/27 Javascript
配置一个vue3.0项目的完整步骤
2019/04/26 Javascript
[34:08]2018DOTA2亚洲邀请赛3月29日 小组赛B组 VP VS EG
2018/03/30 DOTA
pygame学习笔记(3):运动速率、时间、事件、文字
2015/04/15 Python
python实战教程之自动扫雷
2018/07/13 Python
python通过ffmgep从视频中抽帧的方法
2018/12/05 Python
python利用跳板机ssh远程连接redis的方法
2019/02/19 Python
python3实现带多张图片、附件的邮件发送
2019/08/10 Python
基于python 取余问题(%)详解
2020/06/03 Python
python给视频添加背景音乐并改变音量的具体方法
2020/07/19 Python
Python利用pip安装tar.gz格式的离线资源包
2020/09/14 Python
Django mysqlclient安装和使用详解
2020/09/17 Python
记一次高分屏下canvas模糊问题
2020/02/17 HTML / CSS
Keds加拿大官网:购买帆布运动鞋和皮鞋
2019/09/26 全球购物
运动会开幕式邀请函
2014/01/22 职场文书
元旦联欢会感言
2014/03/04 职场文书
机械设计专业大学生职业生涯规划书范文
2014/09/13 职场文书
小学优秀学生评语
2014/12/29 职场文书
三好学生个人总结
2015/02/15 职场文书