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 相关文章推荐
特殊字符、常规符号及其代码对照表
Jun 26 Javascript
Javascript客户端脚本的设计和应用
Aug 21 Javascript
html数组字符串拼接的最快方法
Sep 16 Javascript
javascript在当前窗口关闭前检测窗口是否关闭
Sep 29 Javascript
JS清除选择内容的方法
Jan 29 Javascript
用JavaScript显示浏览器客户端信息的超相近教程
Jun 18 Javascript
Angular实现的敏感文字自动过滤与提示功能示例
Dec 29 Javascript
微信小程序仿朋友圈发布动态功能
Jul 15 Javascript
angular 用Observable实现异步调用的方法
Dec 27 Javascript
vue项目首屏加载时间优化实战
Apr 23 Javascript
Vue页面跳转传递参数及接收方式
Sep 09 Javascript
基于vue的video播放器的实现示例
Feb 19 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
德生PL330的评价与改造
2021/03/02 无线电
Yii基于数组和对象的Model查询技巧实例详解
2015/12/28 PHP
PHP实现的曲线统计图表示例
2016/11/10 PHP
详谈php中 strtr 和 str_replace 的效率问题
2017/05/14 PHP
php实现微信公众平台发红包功能
2018/06/14 PHP
让你的博文自动带上缩址的实现代码,方便发到微博客上
2010/12/28 Javascript
jquery利用命名空间移除绑定事件的方法
2015/03/11 Javascript
Node.js 应用跑得更快 10 个技巧
2016/04/03 Javascript
AngularJs Modules详解及示例代码
2016/09/01 Javascript
JS调用打印机功能简单示例
2016/11/28 Javascript
修改ligerui 默认确认按钮的方法
2016/12/27 Javascript
zTree树形插件异步加载方法详解
2017/06/14 Javascript
在vue中添加Echarts图表的基本使用教程
2017/11/22 Javascript
解决Vue打包之后文件路径出错的问题
2018/03/06 Javascript
JS与SQL方式随机生成高强度密码示例
2018/12/29 Javascript
使用 vue 实例更好的监听事件及vue实例的方法
2019/04/22 Javascript
js+HTML5 canvas 实现简单的加载条(进度条)功能示例
2019/07/16 Javascript
[59:00]DOTA2-DPC中国联赛 正赛 Ehome vs PSG.LGD BO3 第一场 3月7日
2021/03/11 DOTA
Python注释详解
2016/06/01 Python
python生成不重复随机数和对list乱序的解决方法
2018/04/09 Python
python执行系统命令后获取返回值的几种方式集合
2018/05/12 Python
Django model反向关联名称的方法
2018/12/15 Python
对python中字典keys,values,items的使用详解
2019/02/03 Python
python从zip中删除指定后缀文件(推荐)
2019/12/05 Python
解决tensorflow添加ptb库的问题
2020/02/10 Python
python pandas利用fillna方法实现部分自动填充功能
2020/03/16 Python
Pycharm新手使用教程(图文详解)
2020/09/17 Python
Python 实现3种回归模型(Linear Regression,Lasso,Ridge)的示例
2020/10/15 Python
成教自我鉴定
2013/10/27 职场文书
大学生社会实践自我鉴定
2014/03/24 职场文书
文化活动实施方案
2014/03/28 职场文书
医药销售自我评价200字
2014/09/11 职场文书
组织生活会表态发言材料
2014/10/17 职场文书
社区党支部公开承诺书
2015/04/29 职场文书
Django项目如何正确配置日志(logging)
2021/04/29 Python
redis内存空间效率问题的深入探究
2021/05/17 Redis