详解基于iview-ui的导航栏路径(面包屑)配置


Posted in Javascript onFebruary 22, 2019

起因

上家公司的后台管理系统都是刷表刷出来的,所用很久很久没写后台管理系统了。换了工作后总算要开始捣腾router了,很久没用都快忘光了,所以把一些通用的模块记录一下,也分享给需要的朋友们。

经过

//router.js
let routes = [
  {
    path: '/',
    redirect: '/admin',
  },
  {
    path: '/login',
    name: 'login',
    meta: {title: '登录'},
    component: () => import('./components/login.vue')
  },
  {
    path: '/admin',
    name: 'admin',
    meta: {title: '主页'},
    component: () => import('./components/admin.vue'),
    children: [
      {
        path: 'operation',
        name: 'operation',
        meta: {title: '运营管理'},
        component: () => import('./components/admin/operation.vue')
      },
      {
        path: 'order',
        name: 'order',
        meta: {title: '订单中心'},
        redirect: 'order/index',
        component: () => import('./components/admin/order.vue'),
        children: [
          {
            path: 'index',
            name: 'index',
            meta: {title: ''},
            component: () => import('./components/admin/ordercenter.vue')
          },
          {
            path: 'detail',
            name: 'detail',
            meta: {title: '订单详情'},
            component: () => import('./components/admin/orderdetail.vue')
          },
        ]
      },
    ]
  },
]

export default routes

这个是我部分的router路径配置表

/*面包屑路径处理*/
 eve_breadcrumbItem_change(){
        var list = this.$route.fullPath.split('/')//list[0]:是空格
        this.BreadcrumbItem = []
        function fn(obj, arr, index,self) {
          if (obj.hasOwnProperty('children')&&obj['children'].length>0) {
            for (let one of obj.children) {
              if (one.name != 'index' && one.name == arr[index]) {
                self.BreadcrumbItem.push({'title': one.meta.title, 'path': list.slice(0,index+1).join('/')})
                return one.hasOwnProperty('children')&&one['children'].length>0?fn(one,arr,index+1,self):false
              }
            }
          }
        }
        for(let one of this.$router.options.routes){
          if(one.hasOwnProperty('name')&&one.name == list[1]){
            this.BreadcrumbItem.push({'title': one.meta.title, 'path': one.path})
            fn(one,list,2,this)
          }
        }
      }

这个是就是本文的重点,其实也简单,就是递归了下路径名重新组装了下数据给面包屑传过去

watch: {
  '$route'(to, from) {
    this.eve_breadcrumbItem_change()
  }
},
...
mounted() {
  this.eve_breadcrumbItem_change()
},

使用也简单,无非watch检测下路径变化,避免刷新页面时没路径,在mounted里再调用一下。

结果

结果嘛,自然就解决问题。不过路径的配置可能会和大家的不同,我喜欢在分组下默认弄个index路径,我觉得这样结构比较好,这里大家注意下。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
使用自定义setTimeout和setInterval使之可以传递参数和对象参数
Apr 24 Javascript
js购物车实现思路及代码(个人感觉不错)
Dec 23 Javascript
jQuery-1.9.1源码分析系列(十)事件系统之事件包装
Nov 20 Javascript
jQuery计算文本框字数及限制文本框字数的方法
Mar 01 Javascript
JavaScript基础语法之js表达式
Jun 07 Javascript
基于JS实现checkbox全选功能实例代码
Oct 31 Javascript
Node.js与Sails redis组件的使用教程
Feb 14 Javascript
原生js仿淘宝网商品放大镜效果
Feb 28 Javascript
vue实例中data使用return包裹的方法
Aug 27 Javascript
在JS循环中使用async/await的方法
Oct 12 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
Jul 08 Javascript
使用JS实现简易计算器
Jun 14 Javascript
JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】
Feb 22 #Javascript
Fundebug支持监控微信小程序HTTP请求错误的方法
Feb 21 #Javascript
用Fundebug插件记录网络请求异常的方法
Feb 21 #Javascript
VUE搭建手机商城心得和遇到的坑
Feb 21 #Javascript
利用vue重构有赞商城的思路以及总结整理
Feb 21 #Javascript
JavaScript数据结构与算法之二叉树遍历算法详解【先序、中序、后序】
Feb 21 #Javascript
Vue动态生成el-checkbox点击无法赋值的解决方法
Feb 21 #Javascript
You might like
Smarty安装配置方法
2008/04/10 PHP
php中根据某年第几天计算出日期年月日的代码
2011/02/24 PHP
3款值得推荐的微信开发开源框架
2014/10/28 PHP
PHP高并发和大流量解决方案整理
2019/12/24 PHP
用javascript实现分割提取页面所需内容
2007/05/09 Javascript
JavaScript 动态创建VML的方法
2009/10/14 Javascript
jQuery下扩展插件和拓展函数的写法(匿名函数使用的典型例子)
2010/10/20 Javascript
如何确保JavaScript的执行顺序 之jQuery.html深度分析
2011/03/03 Javascript
javascript中onclick(this)用法介绍
2013/04/19 Javascript
使用 Node.js 做 Function Test实现方法
2013/10/25 Javascript
nodejs实现的一个简单聊天室功能分享
2014/12/06 NodeJs
javascript创建cookie、读取cookie
2016/03/31 Javascript
Highcharts学习之坐标轴
2016/08/02 Javascript
详解微信小程序开发之城市选择器 城市切换
2017/01/17 Javascript
深入探究angular2 UI组件之primeNG用法
2017/07/26 Javascript
详解React 16 中的异常处理
2017/07/28 Javascript
bootstrap动态调用select下拉框的实例代码
2018/08/09 Javascript
使用node.JS中的url模块解析URL信息
2020/02/06 Javascript
详解Python命令行解析工具Argparse
2016/04/20 Python
Python网络爬虫神器PyQuery的基本使用教程
2018/02/03 Python
OpenCV+python手势识别框架和实例讲解
2018/08/03 Python
python脚本监控logstash进程并邮件告警实例
2020/04/28 Python
基于HTML5+CSS3实现简单的时钟效果
2017/09/11 HTML / CSS
prAna官网:瑜伽、旅行和冒险服装
2019/03/10 全球购物
土木工程建筑专业毕业生求职信
2013/10/21 职场文书
心碎乌托邦的创业计划书范文
2013/12/26 职场文书
大学生职业生涯设计书
2014/01/02 职场文书
心得体会范文
2014/01/04 职场文书
大学生党员自我批评
2014/02/14 职场文书
2014年健康教育实施方案
2014/02/17 职场文书
信息与工商管理职业规划范文:为梦想而搏击
2014/09/11 职场文书
小区保洁员岗位职责
2015/04/10 职场文书
西游记读书笔记
2015/06/25 职场文书
2016大学生求职自荐信范文
2016/01/28 职场文书
关于感恩的素材句子(38句)
2019/11/11 职场文书
分布式架构Redis中有哪些数据结构及底层实现原理
2022/03/13 Redis