详解基于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 相关文章推荐
关于event.cancelBubble和event.stopPropagation()的区别介绍
Dec 11 Javascript
jquery事件机制扩展插件 jquery鼠标右键事件。
Dec 26 Javascript
javascript结合html5 canvas实现(可调画笔颜色/粗细/橡皮)的涂鸦板
Apr 27 Javascript
Jquery 模拟用户点击超链接或者按钮的方法
Oct 25 Javascript
javascript中使用new与不使用实例化对象的区别
Jun 22 Javascript
第五章之BootStrap 栅格系统
Apr 25 Javascript
使用 Node.js 对文本内容分词和关键词抽取
May 27 Javascript
老生常谈js数据类型
Aug 03 Javascript
js实现一个页面多个倒计时的3种方法
Feb 25 Javascript
微信小程序实现的一键连接wifi功能示例
Apr 24 Javascript
jquery实现垂直手风琴导航栏
Feb 18 jQuery
浅谈克隆 JavaScript
Nov 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
基于文本的访客签到簿
2006/10/09 PHP
PHP中查询SQL Server或Sybase时TEXT字段被截断的解决方法
2009/03/10 PHP
Codeigniter实现智能裁剪图片的方法
2014/06/12 PHP
php函数serialize()与unserialize()用法实例
2014/11/06 PHP
PHP向socket服务器收发数据的方法
2015/01/24 PHP
PHP中Enum(枚举)用法实例详解
2015/12/07 PHP
解析WordPress中函数钩子hook的作用及基本用法
2015/12/22 PHP
PHP给前端返回一个JSON对象的实例讲解
2018/05/31 PHP
JQery jstree 大数据量问题解决方法
2010/03/09 Javascript
javascript中input中readonly和disabled区别介绍
2012/10/23 Javascript
用js实现输入提示(自动完成)的实例代码
2013/06/14 Javascript
js 剪切板应用clipboardData详细解析
2013/12/17 Javascript
jQuery的内容过滤选择器学习教程
2016/04/18 Javascript
JS动态给对象添加事件的简单方法
2016/07/19 Javascript
bootstrap制作jsp页面(根据值让table显示选中)
2017/01/05 Javascript
vue项目中使用bpmn-自定义platter的示例代码
2020/05/11 Javascript
原生JS实现天气预报
2020/06/16 Javascript
理解Proxy及使用Proxy实现vue数据双向绑定操作
2020/07/18 Javascript
[01:12]快闪回顾DOTA2亚洲邀请赛(DAC) 静候2018新征程开启
2018/03/11 DOTA
查看Python安装路径以及安装包路径小技巧
2015/04/28 Python
深入理解Python分布式爬虫原理
2017/11/23 Python
python3.5+tesseract+adb实现西瓜视频或头脑王者辅助答题
2018/01/17 Python
Python异常的检测和处理方法
2018/10/26 Python
Python使用sklearn库实现的各种分类算法简单应用小结
2019/07/04 Python
HTML5响应式(自适应)网页设计的实现
2017/11/17 HTML / CSS
Net Remoting把服务器端激活两种模式
2014/01/22 面试题
历史专业学生的自我评价
2014/02/28 职场文书
实用的简历自我评价
2014/03/06 职场文书
美丽乡村建设实施方案
2014/03/23 职场文书
成立公司计划书
2014/05/07 职场文书
护理目标管理责任书
2014/07/25 职场文书
门卫岗位职责
2015/02/09 职场文书
幼儿园小班工作总结2015
2015/04/25 职场文书
《颐和园》教学反思
2016/02/19 职场文书
nginx 防盗链防爬虫配置详解
2021/03/31 Servers
Golang 对es的操作实例
2022/04/20 Golang