详解基于iview-ui的导航栏路径(面包屑)配置
2019-05-16 18:02
1966 查看
起因
上家公司的后台管理系统都是刷表刷出来的,所用很久很久没写后台管理系统了。换了工作后总算要开始捣腾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路径,我觉得这样结构比较好,这里大家注意下。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
相关文章推荐
- cocos2d-x 基于windows xp + vs2008配置详解&&新建cocos2d-x项目(Hello World)
- Spring 3.X 基于Tomcat的Web应用开发配置文件详解
- 基于jboss mod_cluster的均衡负载集群系统配置详解
- 基于Schema的AOP 配置使用详解
- 基于 CentOS Mysql 安装与主从同步配置详解
- 小程序微信支付功能配置方法示例详解【基于thinkPHP】
- 基于RHEL8/CentOS8的网络IP配置详解
- [置顶] Arcgis Server 基于GP 服务的最短路径分析配置
- Tomcat详解:实现SSL配置,日志配置,登陆用户名与密码设置,路径列表
- 基于MYCAT的MYSQL主从与读写分离配置详解与示例
- 基于php-fpm的配置详解
- 基于海天雄CES-V210开发板的WinCE6.0 kitl 配置、连接和调试详解
- 详解基于Vue+Koa的pm2配置
- 基于Oracle和sqlserver的ArcSDE安装配置详解:
- Nginx中的root&alias文件路径及索引目录配置详解
- eclipse 配置spring IDE详解(配置好以后可以查看bean的依赖关系,很清晰。而且在xml中写bean的时候可以自动提示引用类路径等)
- 基于vue-cli 打包时抽离项目相关配置文件详解
- 基于数据库中间件Mycat的MySQL主从与读写分离配置详解与示例
- 基于获取JAVA路径,包括CLASSPATH外的路径的方法详解