详解基于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 相关文章推荐
给Javascript数组插入一条记录的代码
Aug 30 Javascript
IE与FireFox中的childNodes区别
Oct 20 Javascript
jquery操作checkbox示例分享
Jul 21 Javascript
让javascript加载速度倍增的方法(解决JS加载速度慢的问题)
Dec 12 Javascript
jQuery分组选择器用法实例
Dec 23 Javascript
javascript动态修改Li节点值的方法
Jan 20 Javascript
jQuery处理图片加载失败的常用方法
Jun 08 Javascript
基于canvas实现的钟摆效果完整实例
Jan 26 Javascript
AngularJS基础 ng-hide 指令用法及示例代码
Aug 01 Javascript
AngularJS 指令的交互详解及实例代码
Sep 14 Javascript
文件上传插件SWFUpload的使用指南
Nov 29 Javascript
解析jquery easyui tree异步加载子节点问题
Mar 08 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
谈谈PHP的输入输出流
2007/02/14 PHP
php设计模式 Prototype (原型模式)代码
2011/06/26 PHP
php实现的通用图片处理类
2015/03/24 PHP
微信公众号开发之通过接口删除菜单
2017/02/20 PHP
html 锁定页面(js遮罩层弹出div效果)
2009/10/27 Javascript
JS获取当前日期和时间的简单实例
2013/11/19 Javascript
javascript轻松实现当鼠标移开时已弹出子菜单自动消失
2013/12/29 Javascript
javaScript中两个等于号和三个等于号之间的区别介绍
2014/06/27 Javascript
JS实现向表格中动态添加行的方法
2015/03/30 Javascript
js表单提交和submit提交的区别实例分析
2015/12/10 Javascript
JS中生成随机数的用法及相关函数
2016/01/09 Javascript
理解javascript定时器中的setTimeout与setInterval
2016/02/23 Javascript
jQuery实现的tab标签切换效果示例
2016/09/05 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
2018/05/29 Javascript
微信小程序实现页面浮动导航
2019/01/28 Javascript
Node.js之readline模块的使用详解
2019/03/25 Javascript
vue百度地图 + 定位的详解
2019/05/13 Javascript
vue项目打包后怎样优雅的解决跨域
2019/05/26 Javascript
基于js实现抽红包并分配代码实例
2019/09/19 Javascript
浅析TypeScript 命名空间
2020/03/19 Javascript
javascript设计模式 ? 享元模式原理与用法实例分析
2020/04/15 Javascript
python连接mysql数据库示例(做增删改操作)
2013/12/31 Python
Python selenium 三种等待方式解读
2016/09/15 Python
python遍历序列enumerate函数浅析
2017/10/17 Python
tensorflow 使用flags定义命令行参数的方法
2018/04/23 Python
Python使用ctypes调用C/C++的方法
2019/01/29 Python
用python3 返回鼠标位置的实现方法(带界面)
2019/07/05 Python
python 动态迁移solr数据过程解析
2019/09/04 Python
使用keras实现孪生网络中的权值共享教程
2020/06/11 Python
浅谈html5 video 移动端填坑记
2018/01/15 HTML / CSS
基于HTML5 WebGL的3D机房的示例
2018/03/16 HTML / CSS
大专毕业生自我评价分享
2013/11/10 职场文书
考试作弊被抓检讨书
2014/10/02 职场文书
全国爱眼日活动总结
2015/02/27 职场文书
停课通知书
2015/04/24 职场文书
HashMap实现保存两个key相同的数据
2021/06/30 Java/Android