详解基于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 相关文章推荐
jquery 插件 web2.0分格的分页脚本,可用于ajax无刷新分页
Dec 25 Javascript
jQuery javaScript捕获回车事件(示例代码)
Nov 07 Javascript
JQuery文本改变触发事件如聚焦事件、失焦事件
Jan 15 Javascript
javascript移出节点removeChild()使用介绍
Apr 03 Javascript
jQuery中的$.ajax()方法应用
May 06 Javascript
JavaScript面向对象的实现方法小结
Apr 14 Javascript
全面解析bootstrap格子布局
May 22 Javascript
AngularJS教程 ng-style 指令简单示例
Aug 03 Javascript
关于JS Lodop打印插件打印Bootstrap样式错乱问题的解决方案
Dec 23 Javascript
jQuery实现获取隐藏div高度的方法示例
Feb 09 Javascript
JavaScript正则替换HTML标签功能示例
Mar 02 Javascript
JS监听事件的叠加和移除功能
Nov 19 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
linux下使用ThinkPHP需要注意大小写导致的问题
2011/08/02 PHP
PHP结合JQueryJcrop实现图片裁切实例详解
2014/07/24 PHP
PHP中把对象转换为关联数组代码分享
2015/04/09 PHP
PHP中is_dir()函数使用指南
2015/05/08 PHP
formValidator3.3的ajaxValidator一些异常分析
2011/07/12 Javascript
jquery利用ajax调用后台方法实例
2013/08/23 Javascript
解析offsetHeight,clientHeight,scrollHeight之间的区别
2013/11/20 Javascript
jquery如何获取复选框的值
2013/12/12 Javascript
JS的document.all函数使用示例
2013/12/30 Javascript
JavaScript面对国际化编程时的一些建议
2015/06/24 Javascript
php结合imgareaselect实现图片裁剪
2015/07/05 Javascript
使用jQuery制作基础的Web图片轮播效果
2016/04/22 Javascript
js实现的万能flv网页播放器代码
2016/04/30 Javascript
Angular2内置指令NgFor和NgIf详解
2016/08/03 Javascript
JavaScript中${pageContext.request.contextPath}取值问题及解决方案
2016/12/08 Javascript
Bootstrap轮播图学习使用
2017/02/10 Javascript
Angular多选、全选、批量选择操作实例代码
2017/03/10 Javascript
jQuery实现动态生成表格并为行绑定单击变色动作的方法
2017/04/17 jQuery
cnpm加速Angular项目创建的方法
2018/09/07 Javascript
JavaScript怎样在删除前添加确认弹出框?
2019/05/27 Javascript
基于layui的table插件进行复选框联动功能的实现方法
2019/09/19 Javascript
vue中v-for循环选中点击的元素并对该元素添加样式操作
2020/07/17 Javascript
[01:43]3.19DOTA2发布会 三代刀塔人第三代
2014/03/25 DOTA
Python实现的数据结构与算法之队列详解
2015/04/22 Python
python opencv3实现人脸识别(windows)
2018/05/25 Python
pandas DataFrame 警告(SettingWithCopyWarning)的解决
2019/07/23 Python
Python搭建Keras CNN模型破解网站验证码的实现
2020/04/07 Python
在keras里面实现计算f1-score的代码
2020/06/15 Python
CSS中越界问题的经典解决方案【推荐】
2016/04/19 HTML / CSS
工程专业求职自荐书范文
2014/02/08 职场文书
培训专员岗位职责
2014/02/26 职场文书
代办出身证明书
2014/10/21 职场文书
CSS3 菱形拼图实现只旋转div 背景图片不旋转功能
2021/03/30 HTML / CSS
修改MySQL的数据库引擎为INNODB的方法
2021/05/26 MySQL
Python办公自动化解决world文件批量转换
2021/09/15 Python
Apache Kafka 分区重分配的实现原理解析
2022/07/15 Servers