详解基于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下数值型比较难点说明
Jun 07 Javascript
有关DOM元素与事件的3个谜题
Nov 11 Javascript
jquery中dom操作和事件的实例学习 仿yahoo邮箱登录框的提示效果
Nov 30 Javascript
jquery ajax的success回调函数中实现按钮置灰倒计时
Nov 19 Javascript
jquery全选checkBox功能实现代码(取消全选功能)
Dec 10 Javascript
jQuery中的height innerHeight outerHeight区别示例介绍
Jun 15 Javascript
jquery序列化表单以及回调函数的使用示例
Jul 02 Javascript
JavaScript基础进阶之数组方法总结(推荐)
Sep 04 Javascript
使用Angular CLI快速创建Angular项目的一些基本概念和写法小结
Apr 22 Javascript
简单说说如何使用vue-router插件的方法
Apr 08 Javascript
手机浏览器唤起微信分享(JS)
Oct 11 Javascript
javascript实现简单页面倒计时
Mar 02 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
漫威DC即将合作联动,而双方早已经秘密开始
2020/04/09 欧美动漫
腾讯QQ php程序员面试题目整理
2010/06/08 PHP
PHP模块 Memcached功能多于Memcache
2011/06/14 PHP
[原创]PHP实现逐行删除文件右侧空格的方法
2015/12/25 PHP
利用PHP访问带有密码的Redis方法示例
2017/02/09 PHP
微信封装的调用微信签名包的类库
2017/06/08 PHP
PHP字符串与数组处理函数用法小结
2020/01/07 PHP
JS操作CSS随机改变网页背景实现思路
2014/03/10 Javascript
jQuery 鼠标经过(hover)事件的延时处理示例
2014/04/14 Javascript
JavaScript SHA512&SHA256加密算法详解
2015/08/11 Javascript
微信小程序 animation API详解及实例代码
2016/10/08 Javascript
JS实现图片高斯模糊切换效果的焦点图实例
2017/01/21 Javascript
mac上node.js环境的安装测试
2017/07/03 Javascript
在vue中获取dom元素内容的方法
2017/07/10 Javascript
React-Native 组件之 Modal的使用详解
2017/08/08 Javascript
AjaxUpLoad.js实现文件上传
2018/03/05 Javascript
Vue前后端不同端口的实现方法
2018/09/19 Javascript
微信小程序template模板与component组件的区别和使用详解
2019/05/22 Javascript
Element实现表格分页数据选择+全选所有完善批量操作
2019/06/07 Javascript
Vue 微信端扫描二维码苹果端却只能保存图片问题(解决方法)
2020/01/19 Javascript
如何在vue中使用kindeditor富文本编辑器
2020/12/19 Vue.js
OpenCV-Python 摄像头实时检测人脸代码实例
2019/04/30 Python
python中pip的使用和修改下载源的方法
2019/07/08 Python
python使用pip安装模块出现ReadTimeoutError: HTTPSConnectionPool的解决方法
2019/10/04 Python
python对一个数向上取整的实例方法
2020/06/18 Python
python os.listdir()乱码解决方案
2021/01/31 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
2021/02/06 Python
Sneaker Studio捷克:购买运动鞋
2018/07/08 全球购物
餐饮主管岗位职责
2013/12/10 职场文书
面料业务员岗位职责
2013/12/26 职场文书
洗发水广告词
2014/03/13 职场文书
服务型党组织建设典型材料
2014/05/07 职场文书
创建绿色社区汇报材料
2014/08/22 职场文书
2014年平安建设工作总结
2014/11/19 职场文书
医院岗前培训心得体会
2016/01/08 职场文书
Django基础CBV装饰器和中间件
2022/03/22 Python