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的25个步骤 千倍级效率提升
Feb 11 Javascript
40款非常棒的jQuery 插件和制作教程(系列二)
Nov 02 Javascript
JavaScript事件处理器中的event参数使用介绍
May 24 Javascript
jQuery中prevUntil()方法用法实例
Jan 08 Javascript
Jquery api 速查表分享
Jan 12 Javascript
Jquery attr()方法 属性赋值和属性获取详解
Apr 15 Javascript
JS常用倒计时代码实例总结
Feb 07 Javascript
使用JS中的Replace()方法遇到的问题小结
Oct 20 Javascript
vue实现导航栏效果(选中状态刷新不消失)
Dec 13 Javascript
微信小程序通过保存图片分享到朋友圈功能
May 24 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
May 23 jQuery
Ajax异步刷新功能及简单案例
Nov 20 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
使用PHP批量生成随机用户名
2008/07/10 PHP
php带密码功能并下载远程文件保存本地指定目录 修改加强版
2010/05/16 PHP
PHP经典面试题集锦
2015/03/19 PHP
以文件形式缓存php变量的方法
2015/06/26 PHP
php mysqli查询语句返回值类型实例分析
2016/06/29 PHP
php array_multisort 对数组进行排序详解及实例代码
2016/10/27 PHP
Zend Framework数据库操作技巧总结
2017/02/18 PHP
基于laravel缓冲cache的用法详解
2019/10/23 PHP
Aster vs Newbee BO5 第一场2.19
2021/03/10 DOTA
DOM 基本方法
2009/07/18 Javascript
javascript dom追加内容实现示例
2013/09/21 Javascript
浅谈NodeJS中require路径问题
2015/05/07 NodeJs
JavaScript实现强制重定向至HTTPS页面
2015/06/10 Javascript
为什么JavaScript没有块级作用域
2016/05/22 Javascript
jQuery+正则+文本框只能输入数字的实现方法
2016/10/07 Javascript
vue实现可增删查改的成绩单
2016/10/27 Javascript
Servlet实现文件上传,可多文件上传示例
2016/12/05 Javascript
获取select的value、text值的简单示例(jquery与javascript)
2016/12/07 Javascript
Angularjs中三种数据的绑定策略(“@”,“=”,“&amp;”)
2016/12/23 Javascript
Angular.js 4.x中表单Template-Driven Forms详解
2017/04/25 Javascript
AngularJS全局警告框实现方法示例
2017/05/18 Javascript
jQuery实现IE输入框完成placeholder标签功能的方法
2017/09/20 jQuery
jQuery中内容过滤器简单用法示例
2018/03/31 jQuery
swiper 自动图片无限轮播实现代码
2018/05/21 Javascript
JavaScript创建对象的常用方式总结
2018/08/10 Javascript
javascript实现简易的计算器
2020/01/17 Javascript
Vue路由权限控制解析
2020/11/09 Javascript
简介Django框架中可使用的各类缓存
2015/07/23 Python
解决出现Incorrect integer value: '' for column 'id' at row 1的问题
2017/10/29 Python
python画图把时间作为横坐标的方法
2019/07/07 Python
使用css3和jquery实现可伸缩搜索框
2014/02/12 HTML / CSS
服装促销活动方案
2014/02/23 职场文书
计算机专业毕业生求职信
2014/04/30 职场文书
法人任命书范本
2014/06/04 职场文书
教师群众路线心得体会
2014/11/04 职场文书
Java服务调用RestTemplate与HttpClient的使用详解
2022/06/21 Java/Android