详解基于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 相关文章推荐
!DOCTYPE声明对JavaScript的影响分析
Apr 12 Javascript
基于Jquery与WebMethod投票功能实现代码
Jan 19 Javascript
举例讲解jQuery中可见性过滤选择器的使用
Apr 18 Javascript
一分钟理解js闭包
May 04 Javascript
原生js实现查询天气小应用
Dec 09 Javascript
深入了解javascript 数组的sort方法
Jun 01 Javascript
node.js 模块和其下载资源的镜像设置的方法
Sep 06 Javascript
vue项目中使用Hbuilder打包app 设置沉浸式状态栏的方法
Oct 22 Javascript
js字符串倒序的实例代码
Nov 30 Javascript
jQuery实现的老虎机跑动效果示例
Dec 29 jQuery
js判断非127开头的IP地址的实例代码
Jan 05 Javascript
Windows下安装 node 的版本控制工具 nvm
Feb 06 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
PHP6 mysql连接方式说明
2009/02/09 PHP
php自动获取字符串编码函数mb_detect_encoding
2011/05/31 PHP
php实现session自定义会话处理器的方法
2015/01/27 PHP
PHP判断手机是IOS还是Android
2015/12/09 PHP
PHP中的empty、isset、isnull的区别与使用实例
2019/03/22 PHP
页面载入结束自动调用js函数示例
2013/09/23 Javascript
javascript利用apply和arguments复用方法
2013/11/25 Javascript
开源免费天气预报接口API及全国所有地区代码(国家气象局提供)
2016/12/26 Javascript
Angularjs实现控制器之间通信方式实例总结
2018/03/27 Javascript
vue实现点击展开点击收起效果
2018/04/27 Javascript
JavaScript实现的简单加密解密操作示例
2018/06/01 Javascript
Vue事件处理原理及过程详解
2020/03/11 Javascript
js实现查询商品案例
2020/07/22 Javascript
[01:01:18]DOTA2上海特级锦标赛主赛事日 - 2 败者组第二轮#2COL VS LGD
2016/03/03 DOTA
python中pygame针对游戏窗口的显示方法实例分析(附源码)
2015/11/11 Python
机器学习的框架偏向于Python的13个原因
2017/12/07 Python
python3获取两个日期之间所有日期,以及比较大小的实例
2018/04/08 Python
python绘制中国大陆人口热力图
2018/11/07 Python
python判断文件是否存在,不存在就创建一个的实例
2019/02/18 Python
Python 正则表达式爬虫使用案例解析
2019/09/23 Python
Python 类的私有属性和私有方法实例分析
2019/09/29 Python
Python数据可视化:饼状图的实例讲解
2019/12/07 Python
python json.dumps中文乱码问题解决
2020/04/01 Python
python matplotlib.pyplot.plot()参数用法
2020/04/14 Python
Python matplotlib读取excel数据并用for循环画多个子图subplot操作
2020/07/14 Python
matplotlib bar()实现多组数据并列柱状图通用简便创建方法
2021/02/24 Python
CSS3近阶段篇之酷炫的3D旋转透视
2016/04/28 HTML / CSS
Woolworth官网:澳洲第一大超市
2017/06/25 全球购物
酒店管理专业自荐信
2014/05/23 职场文书
毕业生找工作自荐书
2014/06/30 职场文书
2014年教师思想工作总结
2014/12/03 职场文书
用Java实现简单计算器功能
2021/07/21 Java/Android
MySQL 用 limit 为什么会影响性能
2021/09/15 MySQL
「地球外少年少女」BD发售宣传CM公开
2022/03/21 日漫
Python万能模板案例之matplotlib绘制直方图的基本配置
2022/04/13 Python
css中有哪些方式可以隐藏页面元素及区别
2022/06/16 HTML / CSS