详解基于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 相关文章推荐
页面加载完成后再执行JS的jquery写法以及区别说明
Feb 22 Javascript
简单的jquery左侧导航栏和页面选中效果
Aug 21 Javascript
基于HTML5上使用iScroll实现下拉刷新,上拉加载更多
May 21 Javascript
基于Three.js插件制作360度全景图
Nov 29 Javascript
bootstrap datepicker插件默认英文修改为中文
Jul 28 Javascript
BootstrapTable加载按钮功能实例代码详解
Sep 22 Javascript
Vue 让元素抖动/摆动起来的实现代码
May 31 Javascript
vue实现的请求服务器端API接口示例
May 25 Javascript
浅谈关于vue中scss公用的解决方案
Dec 02 Javascript
js实现图片粘贴到网页
Dec 06 Javascript
JS访问对象两种方式区别解析
Aug 29 Javascript
Vue 使用iframe引用html页面实现vue和html页面方法的调用操作
Nov 16 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
PHP读写文件的方法(生成HTML)
2006/11/27 PHP
php下使用SMTP发邮件的代码
2008/01/10 PHP
php skymvc 一款轻量、简单的php
2011/06/28 PHP
php sybase_fetch_array使用方法
2014/04/15 PHP
php版微信公众平台接口开发之智能回复开发教程
2016/09/22 PHP
php使用str_shuffle()函数生成随机字符串的方法分析
2017/02/17 PHP
php 字符串中是否包含指定字符串的多种方法
2018/04/12 PHP
禁止直接访问php文件代码分享
2020/05/05 PHP
JavaScript 学习笔记(五)
2009/12/31 Javascript
初窥JQuery(二) 事件机制(1)
2010/11/25 Javascript
JQuery插件Quicksand实现超炫的动画洗牌效果
2015/05/03 Javascript
深入浅析JavaScript字符串操作方法 slice、substr、substring及其IE兼容性
2015/12/16 Javascript
javascript实现瀑布流加载图片原理
2016/02/02 Javascript
详解JavaScript的另类写法
2016/04/11 Javascript
jQuery选择器之属性筛选选择器用法详解
2017/09/19 jQuery
VUEJS 2.0 子组件访问/调用父组件的实例
2018/02/10 Javascript
vue-router history模式下的微信分享小结
2018/07/05 Javascript
详解vue 自定义组件使用v-model 及探究其中原理
2019/10/11 Javascript
node.JS的crypto加密模块使用方法详解(MD5,AES,Hmac,Diffie-Hellman加密)
2020/02/06 Javascript
[42:27]DOTA2上海特级锦标赛主赛事日 - 3 败者组第三轮#2Fnatic VS OG第三局
2016/03/05 DOTA
Python压缩和解压缩zip文件
2015/02/14 Python
Python的collections模块中的OrderedDict有序字典
2016/07/07 Python
Python使用pickle模块存储数据报错解决示例代码
2018/01/26 Python
python 读写excel文件操作示例【附源码下载】
2019/06/19 Python
python图形开发GUI库wxpython使用方法详解
2020/02/14 Python
python suds访问webservice服务实现
2020/06/26 Python
如何通过python计算圆周率PI
2020/11/11 Python
利用html5 canvas破解简单验证码及getImageData接口应用
2013/01/25 HTML / CSS
医院学雷锋活动策划方案
2014/02/15 职场文书
洗车工岗位职责
2014/03/15 职场文书
励志演讲稿大全
2014/08/21 职场文书
先进个人事迹材料范文
2014/12/30 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
超市员工管理制度
2015/08/06 职场文书
导游词之河北邯郸
2019/09/12 职场文书
JavaScript实现酷炫的鼠标拖尾特效
2022/02/18 Javascript