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 相关文章推荐
JQuery Ajax通过Handler访问外部XML数据的代码
Jun 01 Javascript
jquery validate使用攻略 第四步
Jul 01 Javascript
jQuery+JSON+jPlayer实现QQ空间音乐查询功能示例
Jun 17 Javascript
简单介绍JavaScript数据类型之隐式类型转换
Dec 28 Javascript
Bootstrap每天必学之标签页(Tab)插件
Aug 09 Javascript
基于Node.js + WebSocket打造即时聊天程序嗨聊
Nov 29 Javascript
详解Angular中通过$location获取地址栏的参数
Aug 02 Javascript
vue 利用路由守卫判断是否登录的方法
Sep 29 Javascript
页面内锚点定位及跳转方法总结(推荐)
Apr 24 Javascript
在小程序中推送模板消息的实现方法
Jul 22 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
Jul 28 Javascript
JavaScript实现打字游戏
Feb 19 Javascript
微信小程序自定义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
FCKeditor添加自定义按钮
2008/03/27 PHP
php下通过伪造http头破解防盗链的代码
2010/07/03 PHP
php&amp;mysql 日期操作小记
2012/02/27 PHP
PHP中__FILE__、dirname与basename用法实例分析
2014/12/01 PHP
Jquery 高亮显示文本中重要的关键字
2009/12/24 Javascript
基于jquery的高性能td和input切换并可修改内容实现代码
2011/01/09 Javascript
Jquery submit()无法提交问题
2013/04/21 Javascript
js同比例缩放图片的小例子
2013/10/30 Javascript
jQuery中:not选择器用法实例
2014/12/30 Javascript
js面向对象之静态方法和静态属性实例分析
2015/01/10 Javascript
jQuery中unbind()方法用法实例
2015/01/19 Javascript
如何实现移动端浏览器不显示 pc 端的广告
2015/10/15 Javascript
HTML5+jQuery插件Quicksand实现超酷的星际争霸2兵种分类展示效果(附demo源码下载)
2016/05/25 Javascript
AngularJS入门教程之AngularJS 模板
2016/08/18 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
2016/08/19 Javascript
快速掌握jQuery插件WebUploader文件上传
2016/11/07 Javascript
用React-Native+Mobx做一个迷你水果商城APP(附源码)
2017/12/25 Javascript
简单理解Vue中的nextTick方法
2018/01/30 Javascript
用p5.js制作烟花特效的示例代码
2018/03/21 Javascript
Vue render渲染时间戳转时间,时间转时间戳及渲染进度条效果
2018/07/27 Javascript
vue实现自定义H5视频播放器的方法步骤
2019/07/01 Javascript
React+TypeScript+webpack4多入口配置详解
2019/08/08 Javascript
使用layui监听器监听select下拉框,事件绑定不成功的解决方法
2019/09/28 Javascript
JavaScript中如何调用Java方法
2020/09/16 Javascript
Python-基础-入门 简介
2014/08/09 Python
python数据类型_元组、字典常用操作方法(介绍)
2017/05/30 Python
Python 2.7中文显示与处理方法
2018/07/16 Python
python tornado微信开发入门代码
2018/08/24 Python
Python tkinter label 更新方法
2018/10/11 Python
Matplotlib scatter绘制散点图的方法实现
2020/01/02 Python
python字典通过值反查键的实现(简洁写法)
2020/09/30 Python
俄罗斯最大的在线珠宝大卖场:Nebo
2019/12/08 全球购物
活动总结书
2014/05/08 职场文书
五四青年节演讲稿
2014/05/26 职场文书
致运动员加油稿
2015/07/21 职场文书
一篇文章告诉你如何实现Vue前端分页和后端分页
2022/02/18 Vue.js