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 相关文章推荐
又一个小巧的图片预加载类
May 05 Javascript
js 数值转换为3位逗号分隔的示例代码
Feb 19 Javascript
JavaScript二维数组实现的省市联动菜单
May 08 Javascript
node.js中的events.emitter.listeners方法使用说明
Dec 10 Javascript
javascript常用经典算法实例详解
Nov 25 Javascript
js阻止默认浏览器行为与冒泡行为的实现代码
May 15 Javascript
jQuery轮播图效果精简版完整示例
Sep 04 Javascript
Vue.js简易安装和快速入门(第二课)
Oct 17 Javascript
vue 挂载路由到头部导航的方法
Nov 13 Javascript
vuex 的简单使用
Mar 22 Javascript
vue-router传递参数的几种方式实例详解
Nov 13 Javascript
解决layui轮播图有数据不显示的情况
Sep 16 Javascript
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
PHP 时间转换Unix时间戳代码
2010/01/22 PHP
PHP利用REFERER根居访问来地址进行页面跳转
2013/09/28 PHP
php检测文件编码的方法示例
2014/04/25 PHP
PHP使用Mysqli类库实现完美分页效果的方法
2016/04/07 PHP
修改Laravel5.3中的路由文件与路径
2016/08/10 PHP
php精度计算的问题解析
2019/06/21 PHP
ie focus bug 解决方法
2009/09/03 Javascript
面向对象的javascript(笔记)
2009/10/06 Javascript
web基于浏览器的本地存储方法应用
2012/11/27 Javascript
window.onload追加函数使用示例
2014/03/03 Javascript
用Jquery选择器计算table中的某一列某一行的合计
2014/08/13 Javascript
js+html5实现canvas绘制简单矩形的方法
2015/06/05 Javascript
jQuery提示插件qTip2用法分析(支持ajax及多种样式)
2016/06/08 Javascript
原生JS实现九宫格抽奖效果
2017/04/01 Javascript
使用vue和datatables进行表格的服务器端分页实例代码
2017/06/07 Javascript
AngularJS 购物车全选/取消全选功能的实现方法
2017/08/14 Javascript
vue 的点击事件获取当前点击的元素方法
2018/09/15 Javascript
jsonp跨域获取百度联想词的方法分析
2019/05/13 Javascript
使用JQuery自动完成插件Auto Complete详解
2019/06/18 jQuery
python操作摄像头截图实现远程监控的例子
2014/03/25 Python
python模仿网页版微信发送消息功能
2018/02/24 Python
python3实现公众号每日定时发送日报和图片
2018/02/24 Python
Python带动态参数功能的sqlite工具类
2018/05/26 Python
python计算列表内各元素的个数实例
2018/06/29 Python
python爬取基于m3u8协议的ts文件并合并
2019/04/26 Python
详解python pandas 分组统计的方法
2019/07/30 Python
如何修复使用 Python ORM 工具 SQLAlchemy 时的常见陷阱
2019/11/19 Python
使用IPython或Spyder将省略号表示的内容完整输出
2020/04/20 Python
selenium如何定位span元素的实现
2021/01/13 Python
基于 HTML5 的 WebGL 3D 版俄罗斯方块的示例代码
2018/05/28 HTML / CSS
巴西电子、家电、智能手机购物网站:Girafa
2019/06/04 全球购物
中兴通讯全球官方网站:ZTE
2020/12/26 全球购物
竞聘医务工作人员的自我评价分享
2013/11/04 职场文书
农业资源与环境专业自荐信范文
2013/12/30 职场文书
年终晚会主持词
2014/03/25 职场文书
SpringBoot项目部署到阿里云服务器的实现步骤
2022/06/28 Java/Android