详解基于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对象的三个方法小结
Jan 12 Javascript
基于jQuery的合并表格中相同文本的相邻单元格的代码
Apr 06 Javascript
js open() 与showModalDialog()方法使用介绍
Sep 10 Javascript
jQuery中prop()方法用法实例
Jan 05 Javascript
JavaScript学习笔记之定时器
Jan 22 Javascript
理解JavaScript中worker事件api
Dec 25 Javascript
网页瀑布流布局jQuery实现代码
Oct 21 Javascript
Java与JavaScript中判断两字符串是否相等的区别
Mar 13 Javascript
AjaxUpLoad.js实现文件上传功能
Mar 02 Javascript
vue动态路由配置及路由传参的方式
May 23 Javascript
vue解决花括号数据绑定不成功的问题
Oct 30 Javascript
Vue3新特性之在Composition API中使用CSS Modules
Jul 13 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
全国FM电台频率大全 - 24 贵州省
2020/03/11 无线电
提高define性能的php扩展hidef的安装和使用
2011/06/14 PHP
一个基于PDO的数据库操作类(新) 一个PDO事务实例
2011/07/03 PHP
采用PHP函数memory_get_usage获取PHP内存清耗量的方法
2011/12/06 PHP
浅析Dos下运行php.exe,出现没有找到php_mbstring.dll 错误的解决方法
2013/06/29 PHP
php批量删除数据库下指定前缀的表以prefix_为例
2014/08/24 PHP
php使用str_replace实现输入框回车替换br的方法
2014/11/24 PHP
PHP-FPM实现性能优化
2016/03/31 PHP
php利用header函数下载各种文件
2016/08/24 PHP
php实现多维数组排序的方法示例
2017/03/23 PHP
javascript标签在页面中的位置探讨
2013/04/11 Javascript
jquery实现的导航固定效果
2014/04/28 Javascript
Javascript遍历Html Table示例(包括内容和属性值)
2014/07/08 Javascript
JavaScript实现SHA-1加密算法的方法
2015/03/11 Javascript
js实现倒计时效果(小于10补零)
2017/03/08 Javascript
jquery 给动态生成的标签绑定事件的几种方法总结
2018/02/24 jQuery
angularJs复选框checkbox选中进行ng-show显示隐藏的方法
2018/10/08 Javascript
微信小程序实现的一键复制功能示例
2019/04/24 Javascript
JS 事件机制完整示例分析
2020/01/15 Javascript
vue实现前端分页完整代码
2020/06/17 Javascript
vue中提示$index is not defined错误的解决方式
2020/09/02 Javascript
js实现简单的轮播图效果
2020/12/13 Javascript
简单实现Python爬取网络图片
2018/04/01 Python
Python 实现在文件中的每一行添加一个逗号
2018/04/29 Python
对python requests发送json格式数据的实例详解
2018/12/19 Python
对python中字典keys,values,items的使用详解
2019/02/03 Python
情人节快乐! python绘制漂亮玫瑰
2020/08/18 Python
python+numpy实现的基本矩阵操作示例
2019/07/19 Python
Python通过VGG16模型实现图像风格转换操作详解
2020/01/16 Python
三步解决python PermissionError: [WinError 5]拒绝访问的情况
2020/04/22 Python
Html5游戏开发之乒乓Ping Pong游戏示例(一)
2013/01/21 HTML / CSS
英国广泛的照明产品网站:Lights4living
2018/01/28 全球购物
日本卡普空电视游戏软件公司官方购物网站:e-CAPCOM
2018/07/17 全球购物
大学生两会学习心得体会
2014/03/10 职场文书
英文投诉信格式
2015/07/03 职场文书
如何用python识别滑块验证码中的缺口
2021/04/01 Python