详解基于iview-ui的导航栏路径(面包屑)配置
起因
上家公司的后台管理系统都是刷表刷出来的,所用很久很久没写后台管理系统了。换了工作后总算要开始捣腾router了,很久没用都快忘光了,所以把一些通用的模块记录一下,也分享给需要的朋友们。
经过
//router.js letroutes=[ { 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') }, ] }, ] }, ] exportdefaultroutes
这个是我部分的router路径配置表
/*面包屑路径处理*/ eve_breadcrumbItem_change(){ varlist=this.$route.fullPath.split('/')//list[0]:是空格 this.BreadcrumbItem=[] functionfn(obj,arr,index,self){ if(obj.hasOwnProperty('children')&&obj['children'].length>0){ for(letoneofobj.children){ if(one.name!='index'&&one.name==arr[index]){ self.BreadcrumbItem.push({'title':one.meta.title,'path':list.slice(0,index+1).join('/')}) returnone.hasOwnProperty('children')&&one['children'].length>0?fn(one,arr,index+1,self):false } } } } for(letoneofthis.$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路径,我觉得这样结构比较好,这里大家注意下。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。