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 相关文章推荐
FireFox JavaScript全局Event对象
Jun 14 Javascript
jquery 笔记 事件
Nov 02 Javascript
jquery下拉select控件操作方法分享(jquery操作select)
Mar 25 Javascript
下拉框select的绑定示例
Sep 04 Javascript
JavaScript控制listbox列表框的项目上下移动的方法
Mar 18 Javascript
使用伪命名空间封装保护独自创建的对象方法
Aug 04 Javascript
jQuery实现的仿百度,仿谷歌搜索下拉框效果示例
Dec 30 Javascript
微信小程序引用公共js里的方法的实例详解
Aug 17 Javascript
浅谈Vue 性能优化之深挖数组
Dec 11 Javascript
微信小程序实现展示评分结果功能
Feb 15 Javascript
node微信开发之获取access_token+自定义菜单
Mar 17 Javascript
Vue自定义组件的四种方式示例详解
Feb 28 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实现短域名互转
2013/07/05 PHP
php实现的操作excel类详解
2016/01/15 PHP
PHP基于ORM方式操作MySQL数据库实例
2017/06/21 PHP
你的编程语言可以这样做吗?
2006/09/07 Javascript
JScript中使用ADODB.Stream判断文件编码的代码
2008/06/09 Javascript
javascript获得网页窗口实际大小的示例代码
2013/09/21 Javascript
JS按字节截取字符长度实例
2013/11/20 Javascript
对于Form表单reset方法的新认识
2014/03/05 Javascript
多个$(document).ready()的执行顺序实例分析
2014/07/26 Javascript
基于JavaScript实现简单的随机抽奖小程序
2016/01/05 Javascript
谈一谈jQuery核心架构设计
2016/03/28 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
2016/05/05 Javascript
简单的JS轮播图代码
2016/07/18 Javascript
ExtJs的Ext.Ajax.request实现waitMsg等待提示效果
2017/06/14 Javascript
解析vue中的$mount
2017/12/21 Javascript
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
图文讲解vue的v-if使用方法
2019/02/11 Javascript
基于vue 实现表单中password输入的显示与隐藏功能
2019/07/19 Javascript
jQuery实现图片切换效果
2020/10/19 jQuery
[56:21]LGD vs IG 2018国际邀请赛小组赛BO2 第二场 8.18
2018/08/19 DOTA
Python urllib、urllib2、httplib抓取网页代码实例
2015/05/09 Python
pandas 小数位数 精度的处理方法
2018/06/09 Python
Python实现快速傅里叶变换的方法(FFT)
2018/07/21 Python
python中dict字典的查询键值对 遍历 排序 创建 访问 更新 删除基础操作方法
2018/09/13 Python
Python初学者常见错误详解
2019/07/02 Python
Python尾递归优化实现代码及原理详解
2020/10/09 Python
python用tkinter实现一个gui的翻译工具
2020/10/26 Python
Nordgreen美国官网:在线购买极简主义斯堪的纳维亚手表
2019/07/24 全球购物
什么是SCM(软件配置管理)
2014/08/16 面试题
企事业单位求职者的自我评价
2013/12/28 职场文书
班级出游活动计划书
2014/08/15 职场文书
用人单位聘用意向书
2015/05/11 职场文书
不同意离婚上诉状
2015/05/23 职场文书
会议主持人开场白台词
2015/05/28 职场文书
小组口号霸气押韵
2015/12/24 职场文书
python scipy 稀疏矩阵的使用说明
2021/05/26 Python