详解基于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 相关文章推荐
extjs DataReader、JsonReader、XmlReader的构造方法
Nov 07 Javascript
jQuery 工具函数学习资料
Apr 29 Javascript
JS Range HTML文档/文字内容选中、库及应用介绍
May 12 Javascript
javascript使用appendChild追加节点实例
Jan 12 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
Aug 06 Javascript
jQuery实现简单的计时器功能实例分析
Aug 29 jQuery
JavaScript 保护变量不被随意修改的实现代码
Sep 27 Javascript
理解Koa2中的async&await的用法
Feb 05 Javascript
微信小程序自定义导航栏实例代码
Apr 05 Javascript
详解Vue前端生产环境发布配置实战篇
May 07 Javascript
构建大型 Vue.js 项目的10条建议(小结)
Nov 14 Javascript
vue循环中点击选中再点击取消(单选)的实现
Sep 10 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生成指定长度随机数最简洁的方法
2014/07/14 PHP
你可能不再需要JQUERY
2021/03/09 Javascript
jQuery 表单验证插件formValidation实现个性化错误提示
2009/06/23 Javascript
Javascript document.referrer判断访客来源网址
2020/05/15 Javascript
jQuery 锚点跳转滚动条平滑滚动一句话代码
2010/04/30 Javascript
在VS2008中使用jQuery智能感应的方法
2010/12/30 Javascript
Jquery知识点二 jquery下对数组的操作
2011/01/15 Javascript
javascript获取鼠标位置部分的实例代码(兼容IE,FF)
2013/08/05 Javascript
js报$ is not a function 的问题的解决方法
2014/01/20 Javascript
简介JavaScript中的sub()方法的使用
2015/06/08 Javascript
JavaScript实现函数返回多个值的方法
2015/06/09 Javascript
Jquery幻灯片特效代码分享--打开页面随机选择切换方式(3)
2015/08/15 Javascript
JavaScript实现为input与textarea自定义hover,focus效果的方法
2015/08/21 Javascript
JavaScript仿淘宝页面图片滚动加载及刷新回顶部的方法解析
2016/05/24 Javascript
AngularJs学习第五篇从Controller控制器谈谈$scope作用域
2016/06/08 Javascript
AngularJS 服务详细讲解及示例代码
2016/08/17 Javascript
浅谈javascript中的Function和Arguments
2016/08/30 Javascript
arcgis for js 修改infowindow样式的方法
2016/11/02 Javascript
浅谈事件冒泡、事件委托、jQuery元素节点操作、滚轮事件与函数节流
2017/07/22 jQuery
web前端vue实现插值文本和输出原始html
2018/01/19 Javascript
基于Vue的延迟加载插件vue-view-lazy
2018/05/21 Javascript
5分钟学会Vue动画效果(小结)
2018/07/21 Javascript
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
2019/05/21 Javascript
JavaScript工具库之Lodash详解
2019/06/15 Javascript
深入浅析JavaScript中的in关键字和for-in循环
2020/04/20 Javascript
vue+openlayers绘制省市边界线
2020/12/24 Vue.js
详解Python中的变量及其命名和打印
2016/03/11 Python
TensorFlow安装及jupyter notebook配置方法
2017/09/08 Python
Python中的Cookie模块如何使用
2020/06/04 Python
CSS3实现千变万化的文字阴影text-shadow效果设计
2016/04/26 HTML / CSS
html5应用缓存_动力节点Java学院整理
2017/07/13 HTML / CSS
DAWGS鞋官方网站:鞋,凉鞋,靴子
2016/10/04 全球购物
天巡全球:Skyscanner Global
2017/06/20 全球购物
美国农场鲜花速递:The Bouqs
2018/07/13 全球购物
Linux内核产生并发的原因
2016/11/08 面试题
2015清明节祭奠英烈寄语大全
2015/03/04 职场文书