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动态设置form表单的enctype值(实现代码)
Jul 04 Javascript
Javascript中匿名函数的多种调用方式总结
Dec 06 Javascript
javascript中兼容主流浏览器的动态生成iframe方法
May 05 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
Jun 10 Javascript
vue2.0父子组件及非父子组件之间的通信方法
Jan 21 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
Apr 10 Javascript
Bootstrap 3浏览器兼容性问题及解决方案
Apr 11 Javascript
ionic2屏幕适配实现适配手机、平板等设备的示例代码
Aug 11 Javascript
Angular实现下载安装包的功能代码分享
Sep 05 Javascript
react 应用多入口配置及实践总结
Oct 17 Javascript
Vue动态生成el-checkbox点击无法赋值的解决方法
Feb 21 Javascript
js简单实现自动生成表格功能示例
Jun 02 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生成动态验证码gif图片
2015/10/19 PHP
各种快递查询--Api接口
2016/04/26 PHP
CentOS 7.2 下编译安装PHP7.0.10+MySQL5.7.14+Nginx1.10.1的方法详解(mini版本)
2016/09/01 PHP
php中yar框架实例用法讲解
2020/12/27 PHP
JScript内置对象Array中元素的删除方法
2007/03/08 Javascript
javascript globalStorage类代码
2009/06/04 Javascript
Prototype源码浅析 String部分(二)
2012/01/16 Javascript
兼容主流浏览器的iframe自适应高度js脚本
2014/01/10 Javascript
js获取下拉列表的值和元素个数示例
2014/05/07 Javascript
浅谈JavaScript函数节流
2014/12/09 Javascript
Javascript实现禁止输入中文或英文的例子
2014/12/09 Javascript
详解Javascript事件驱动编程
2016/01/03 Javascript
Jquery中巧用Ajax的beforeSend方法
2016/01/20 Javascript
js实现日历与定时器
2017/02/22 Javascript
underscore之Collections_动力节点Java学院整理
2017/07/10 Javascript
JS模拟超市简易收银台小程序代码解析
2017/08/18 Javascript
vue2.0组件之间传值、通信的多种方式(干货)
2018/02/10 Javascript
玩转vue的slot内容分发
2018/09/22 Javascript
详解JavaScript函数callee、call、apply的区别
2019/03/08 Javascript
解决Layui数据表格的宽高问题
2019/09/28 Javascript
JS删除数组指定值常用方法详解
2020/06/04 Javascript
python实现下载文件的三种方法
2017/02/09 Python
Python数据操作方法封装类实例
2017/06/23 Python
Python和Go语言的区别总结
2019/02/20 Python
PyCharm 创建指定版本的 Django(超详图解教程)
2019/06/18 Python
python3中sys.argv的实例用法
2020/04/24 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
2020/05/13 Python
详解Pandas 处理缺失值指令大全
2020/07/30 Python
python 实现socket服务端并发的四种方式
2020/12/14 Python
写求职信有什么意义
2014/02/17 职场文书
驾驶员培训方案
2014/05/01 职场文书
《一面五星红旗》教学反思
2016/02/23 职场文书
如何判断微信付款码和支付宝付款码
2021/04/01 PHP
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python
MySQL kill不掉线程的原因
2021/05/07 MySQL
css中有哪些方式可以隐藏页面元素及区别
2022/06/16 HTML / CSS