vue路由结构可设一层方便动态添加路由操作


Posted in Javascript onAugust 31, 2020

动态添加路由基本功能

let routes=[{ path: '/login', name: 'login', component: () => import('../components/Login.vue') }]

this.$router.addRoutes(routes)

涉及多层路由嵌套 如图

vue路由结构可设一层方便动态添加路由操作

单纯使用addRoutes 层级结构不同

修改路由结构

例:

{
     name:'account',
     path: '/account/account',
     meta: {
      title: '个人中心',
      requireAuth: true
     },
     component: account,
     children:[
      {
       name: 'account',
       path: '/account/account',
       meta: {
        title: '账号设置',
        requireAuth: true
       },
       component: setAccount,
      },
      {
       name: 'childMgt',
       path: '/account/childMgt',
       meta: {
        title: '子账号管理',
        requireAuth: true
       },
       component: childMgt,
      },
      
     ]
},

修改单一结构

{
     name:'account',
     path: '/account/account',
     meta: {
      title: '个人中心',
      requireAuth: true
     },
     component: account,
     children:[
      {
       name: 'account',
       path: '/account/account',
       meta: {
        title: '账号设置',
        requireAuth: true
       },
       component: setAccount,
      },
     ]
},
{
     name:'account',
     path: '/account/childMgt',
     meta: {
      title: '个人中心',
      requireAuth: true
     },
     component: account,
     children:[
      {
       name: 'userMgt',
       path: '/account/childMgt',
       meta: {
        title: '子账号管理',
        requireAuth: true
       },
       component: childMgt,
      },
     ]
},

每一层单独包含一个子集合方便权限管理动态添加

main.js

router.beforeEach((to, from, next) => {
 if (from.name == null) { //页面刷新
 let pathName = sessionStorage.getItem("pathName") //暂存上一个路由
 if (pathName == to.path||pathName==to.redirectedFrom) {
 } else {
  sessionStorage.setItem("pathName", to.redirectedFrom)
 }
 } else {
  sessionStorage.setItem("pathName", to.path)
 }
 next()
})

app.vue

let routes=[处理后路由信息]
this.$router.addRoutes(routes)
this.$nextTick(i=>{
  this.$router.replace(sessionStorage.getItem("pathName"))//跳转指定地址 否则404
})

补充知识:vue路由进入下一层返回上一层重复跳转之前进入页面

说明

vue路由返回上一层,使用 this.$router.back(-1)

进入其他页面用 this.$outer.push('home')

这样当我进入页面会发生如下场景

进入页面时:A-B-C

返回页面时:C-B-A

总的路径行程:A-B-C-B-A

总的来是:页面返回时重复返回上一层

解决

官方文档

vue路由结构可设一层方便动态添加路由操作

this.$outer.push('home') // 会重复添加路由信息进入路由记录

this.$outer.replace('home') // 会替换之前的路由记录

this.$outer.replace('home') // 跳转页面推荐用这个

以上这篇vue路由结构可设一层方便动态添加路由操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Jquery跨域获得Json时invalid label错误的解决办法
Jan 11 Javascript
解析dom中的children对象数组元素firstChild,lastChild的使用
Jul 10 Javascript
用json方式实现在 js 中建立一个map
May 02 Javascript
jscript读写二进制文件的方法
Apr 22 Javascript
javascript实现简单的全选和反选功能
Jan 05 Javascript
Three.js学习之网格
Aug 10 Javascript
JavaScript实现定时页面跳转功能示例
Feb 14 Javascript
jQuery实现点击关注和取消功能
Jul 03 jQuery
JS实现的判断方法、变量是否存在功能示例
Mar 28 Javascript
jQuery实现合并表格单元格中相同行操作示例
Jan 28 jQuery
超详细小程序定位地图模块全系列开发教学
Nov 24 Javascript
vue实现购物车的小练习
Dec 21 Vue.js
element-ui tree结构实现增删改自定义功能代码
Aug 31 #Javascript
vue elementui tree 任意级别拖拽功能代码
Aug 31 #Javascript
Element-ui树形控件el-tree自定义增删改和局部刷新及懒加载操作
Aug 31 #Javascript
JS遍历树层级关系实现原理解析
Aug 31 #Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
Aug 31 #Javascript
Vue循环中多个input绑定指定v-model实例
Aug 31 #Javascript
浅析 Vue 3.0 的组装式 API(一)
Aug 31 #Javascript
You might like
超神学院:天使彦公认最美的三个视角,网友:我的天使快下凡吧!
2020/03/02 国漫
PHP完整的日历类(CLASS)
2006/11/27 PHP
Notice: Undefined index: page in E:\PHP\test.php on line 14
2010/11/02 PHP
php实现smarty模板无限极分类的方法
2015/12/07 PHP
php遍历、读取文件夹中图片并分页显示图片的方法
2016/11/15 PHP
Thinkphp集成抖音SDK的实现方法
2020/04/28 PHP
js 函数调用模式小结
2011/12/26 Javascript
JavaScript中的稀疏数组与密集数组[译]
2012/09/17 Javascript
jquery选择器-根据多个属性选择示例代码
2013/10/21 Javascript
jQuery aminate方法定位到页面具体位置
2013/12/26 Javascript
JavaScript函数柯里化详解
2016/04/29 Javascript
详解JavaScript的内置对象
2016/12/07 Javascript
最新Javascript程序员面试试题和解题方法
2017/11/23 Javascript
浅析Proxy可以优化vue的数据监听机制问题及实现思路
2018/11/29 Javascript
微信小程序入门之广告条实现方法示例
2018/12/05 Javascript
微信小程序提交form操作示例
2018/12/30 Javascript
搭建一个nodejs脚手架的方法步骤
2019/06/28 NodeJs
解决layui表格内文本超出隐藏的问题
2019/09/12 Javascript
Vue分页效果与购物车功能
2019/12/13 Javascript
浅谈在vue-cli3项目中解决动态引入图片img404的问题
2020/08/04 Javascript
JavaScript数组排序的六种常见算法总结
2020/08/18 Javascript
Python中的生成器和yield详细介绍
2015/01/09 Python
在Docker上部署Python的Flask框架的教程
2015/04/08 Python
Python基于dom操作xml数据的方法示例
2018/05/12 Python
Python 从列表中取值和取索引的方法
2018/12/25 Python
Python3中_(下划线)和__(双下划线)的用途和区别
2019/04/26 Python
Django 创建/删除用户的示例代码
2019/07/24 Python
python3 pathlib库Path类方法总结
2019/12/26 Python
麦当劳印度网上订餐:McDelivery
2020/03/16 全球购物
Ado与Ado.net的相同与不同
2014/12/08 面试题
深圳茁壮笔试题
2015/05/28 面试题
初级Java程序员面试题
2016/03/03 面试题
环保公益广告语
2014/03/13 职场文书
中层干部培训方案
2014/06/16 职场文书
爱国口号
2014/06/19 职场文书
党支部考察鉴定意见
2015/06/02 职场文书