位置: IT常识 - 正文

解决router.beforeEach()动态加载路由出现死循环问题(解决掉发的有效方法)

编辑:rootadmin
这篇文章主要介绍了解决router.beforeEach()动态加载路由出现死循环问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教 目录

推荐整理分享解决router.beforeEach()动态加载路由出现死循环问题(解决掉发的有效方法),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:解决的英文,解决的英文,解决口苦最快的方法,解决掉发的有效方法,解决口苦最快的方法,解决中暑最有效方法,解决烧心最快方法,解决的英文,内容如对您有帮助,希望把文章链接给更多的朋友!

router.beforeEach()动态加载路由出现死循环1、router.beforeEach( to , from ,next) 介绍2、两种死循环问题vue动态加载路由进入页面白屏或beforeEach死循环踩坑router.beforeEach()动态加载路由出现死循环

采用beforeEach做路由过滤,如果没登录就直接跳转到登录界面,然而发现个问题就是要么跳转到登录页面、然后再调回首页,要么卡着不动、要么出现空白页面。

1、router.beforeEach( to , from ,next) 介绍to: 即将路由的地址form: 当前的路由地址,也就是马上要离开的地址next(): 执行进入下一个路由next(false): 禁止进入下一个路由next('/login'): 路由到/login地址2、两种死循环问题

(1)路由到相同地址的死循环

比如在beforeEach中设置未登录(userData为null)就跳转到登录页面

在非登录页面是没有问题的,但是在登录页面就出现了死循环或者空白页,通过打印我们发现浏览器在登录页反复跳转。

在登录页面因为没登录,userData为null,这时候通过next(’\login’)就会重定向到登录页面,重定向到登录页面后,这时候userData依然为空,那么就要继续重定向登录页面,于是出现了死循环。

对这种情况加个判断条件就能解决。

解决router.beforeEach()动态加载路由出现死循环问题(解决掉发的有效方法)

(2)动态加载路由表出现的死循环

在beforeEach()通过动态加载路由表

在beforeEach()中都会获取路由表存入store,然后从store取出动态加入此路由表。

但是每次路由之前都会重新添加路由表,每次添加完路由表当前默认路径是首页(to.path显示内容)而不是登陆页面,页面会自动跳转到首页,但是如果这时候通过next(’/login’)跳转到登录页面,那么就会重新路由,在路由前又开始重新添加路由表,然后当前路径是首页,这时候又要跳转到登录页面因此就会出现死循环。

这时候我们就不能反复加载路由表,加个判断条件就行了。

vue动态加载路由进入页面白屏或beforeEach死循环踩坑

开发的哥们儿从网上找了一个简单的框架,通过auth的配置来决定什么权限可以进入到什么页面。具体操作就是登陆获取用户的权限,然后遍历本地的总路由表匹配权限返回当前用户可以访问的路由表。网上大多数的方案是从后端接口获取权限和路由表。此为两者之间的差异,但是不影响填坑方案的可行性

先放上本地总路由表部分代码,就是在这个表中根据权限进一步遍历筛选的,通过硬编码的方式写在项目中,auth[]内用数字、用中文、用单词也都是可以的

const routerList = [{path: '/',component: Layout,redirect: '/dashboard',auth: [0, 1, 2],meta: {title: '首页',icon: 'dashboard'},children: [{path: 'dashboard',name: 'Dashboard',component: () => import('@/views/dashboard/index'),meta: {title: '首页',icon: 'dashboard'},auth: [0, 1, 2]}]},{path: '/enterprises',component: Layout,name: 'Enterprises',redirect: 'noRedirect',auth: [0, 1, 2],meta: {title: '智慧园区',icon: 'el-icon-office-building'},children: [{path: 'huanjingjiance',name: 'huanjingjiance',component: () => import('@/views/environment/monitor'),auth: [0, 2],meta: {title: '环境监测'},}]},{path: '/user',component: Layout,name: 'User',redirect: 'noRedirect',auth: [0, 1],meta: {title: '人员信息',icon: 'el-icon-user'},children: [{path: 'index',name: 'Index',component: () => import('@/views/user/index'),meta: {title: '个人信息'},auth: [0, 1],}]}]

首先在路由中需要指定登录的页面,这个是不分权限的,所以不需要动态获取

const constantRoutes = [{path: '/login',component: () => import('@/views/login/index'),hidden: true},...dynamicRouter]var createRouter = () => new Router({mode: 'history',scrollBehavior: () => ({y: 0}),routes: constantRoutes})

以上为个人经验,希望能给大家一个参考,也希望大家多多支持本站。

本文链接地址:https://www.jiuchutong.com/zhishi/310505.html 转载请保留说明!

上一篇:dedecms织梦二次开发独立点赞功能(织梦可以放两个模板吗)

下一篇:mysql外键约束有什么要求(mysql外键约束的基本语法结构)

  • 抖音有的视频不能保存的原因是什么(抖音有的视频不能下载怎么办)

    抖音有的视频不能保存的原因是什么(抖音有的视频不能下载怎么办)

  • 华为手机晚上拍照怎么打开闪光灯(华为手机晚上拍人像)

    华为手机晚上拍照怎么打开闪光灯(华为手机晚上拍人像)

  • 华为mate10手机尺寸(华为手机mate10尺寸大小)

    华为mate10手机尺寸(华为手机mate10尺寸大小)

  • 华为potal10什么型号啊(华为10plos)

    华为potal10什么型号啊(华为10plos)

  • 卡贴机第二次怎么激活(卡贴机第二次怎么激活福射会增加吗)

    卡贴机第二次怎么激活(卡贴机第二次怎么激活福射会增加吗)

  • 抖音认证要钱吗(抖音申请认证要钱吗)

    抖音认证要钱吗(抖音申请认证要钱吗)

  • 平板可以用word吗(平板可以用word和ttp)

    平板可以用word吗(平板可以用word和ttp)

  • 电话未知号码什么意思(未知号码的电话)

    电话未知号码什么意思(未知号码的电话)

  • 芒果tv可以多个人用吗(芒果tv在线观看官网)

    芒果tv可以多个人用吗(芒果tv在线观看官网)

  • iphonexsmax可以无线快充吗(iphonexsmax可以无线充电不)

    iphonexsmax可以无线快充吗(iphonexsmax可以无线充电不)

  • 惠普打印机信息页没有二维码(惠普打印机信息表打不出来)

    惠普打印机信息页没有二维码(惠普打印机信息表打不出来)

  • ipad发现不了蓝牙耳机(ipad发现不了蓝牙设备)

    ipad发现不了蓝牙耳机(ipad发现不了蓝牙设备)

  • 浏览器网速慢怎么回事(浏览器网速慢怎么回事手机)

    浏览器网速慢怎么回事(浏览器网速慢怎么回事手机)

  • 苹果7p耳机插上没声音(苹果7p耳机插上没反应怎么设置)

    苹果7p耳机插上没声音(苹果7p耳机插上没反应怎么设置)

  • 小米手机信号显示hd是什么意思(小米手机信号显示e是什么意思)

    小米手机信号显示hd是什么意思(小米手机信号显示e是什么意思)

  • 苹果打电话听筒声音小解决方法(苹果打电话听筒没声音微信听语音又可以了)

    苹果打电话听筒声音小解决方法(苹果打电话听筒没声音微信听语音又可以了)

  • 易企秀可以导出图片吗(易企秀可以导出长图吗)

    易企秀可以导出图片吗(易企秀可以导出长图吗)

  • ars一al00是啥型号(ars—al00)

    ars一al00是啥型号(ars—al00)

  • 苹果耳机二代有线和无线的区别(苹果耳机二代有无线充电功能吗)

    苹果耳机二代有线和无线的区别(苹果耳机二代有无线充电功能吗)

  • 拼多多猫好友怎么删除(拼多多怎么互相加为好友)

    拼多多猫好友怎么删除(拼多多怎么互相加为好友)

  • 苹果x拨号声音怎么关(苹果拨号声音怎么调大)

    苹果x拨号声音怎么关(苹果拨号声音怎么调大)

  • 苹果7找不到访问限制(苹果7找不到访问限制怎么办)

    苹果7找不到访问限制(苹果7找不到访问限制怎么办)

  • 打印测试页在哪里(打印测试页在哪里打)

    打印测试页在哪里(打印测试页在哪里打)

  • 线下门店为什么需要小程序(线下门店为什么不卖网球鞋)

    线下门店为什么需要小程序(线下门店为什么不卖网球鞋)

  • 视频美颜怎么弄(华为手机微信视频美颜怎么弄)

    视频美颜怎么弄(华为手机微信视频美颜怎么弄)

  • 接收后端返回的pdf文件流 前端使用Vue-pdf实现预览(分页)(后端接口返回数据类型规范)

    接收后端返回的pdf文件流 前端使用Vue-pdf实现预览(分页)(后端接口返回数据类型规范)

  • 运输发票税率6%和3%区别在哪
  • 小型微利企业所得税计算公式2023
  • 销售使用过的车辆
  • 个税是按照实发工资计算吗
  • 申请电子发票需要交钱吗
  • 承兑多付了退现金网银备注什么
  • 税控盘这个月没有反写会怎么样
  • 吊车租赁增值税税率最新2022
  • 计提城市建设维护税
  • 制造费用月末需要结转吗
  • 购买固定资产的税率是多少
  • 库存与账面不符怎么办
  • 企业之间承兑汇票贴现违法吗知乎
  • 进口增值税可以抵扣销项税额吗
  • 出口企业年底结转税金
  • 什么是债券持有人
  • 当月发生的费用下月支付
  • 工资及社保外包服务
  • 预计负债属于什么
  • dghm.exe是什么程序
  • 微软win11预览版
  • php imagestring
  • php图片加文字水印
  • PHP:getimagesizefromstring()的用法_GD库图像处理函数
  • 悉尼奥林匹克公园
  • 游戏运营服务是做什么的
  • 宝塔面板使用教程
  • 企业所得税征前减免是什么意思
  • 2023年会出什么车
  • vue 登陆
  • php7 数组
  • 短期借款转为长期借款引起的会计要素变化
  • 自营与代理
  • 嵌入式软件产品税率
  • 利润表中本期数
  • 集团公司如何收管理费
  • 不动产固定资产的进项税抵扣新规定
  • 客户对账单应该哪个部门做
  • 农民工的劳务报酬个人所得税怎么那么高
  • vscode yaml插件
  • 园林绿化工程公司简介
  • 政府扶持资金所得税税率
  • 其他科技推广服务业可以加计扣除吗
  • db2 日期查询
  • 暂估和冲暂估分录
  • 评估价计入什么科目
  • 税务师报名条件和要求
  • 小规模纳税人上限
  • 预收账款可以长期挂账吗
  • 提取法定盈余公积金的比例是多少
  • 合作建房土地增值税清算案例
  • 在建工程如何转固
  • 合同资产根据什么来编报表
  • 盈余公积转增实收资本对会计要素的影响
  • 协作费用
  • 只有发票没有合同可以做账吗
  • 定额发票收入怎么样确定
  • 汽车4s店费用预算
  • 企业会计档案由谁保管
  • 让渡是什么
  • sql指定字段添加数据
  • sqlserver 通用分页存储过程
  • win10 tab alt
  • ibm笔记本开机进不去系统
  • mac怎么自定义桌面图标
  • 重装系统要注意哪些
  • 无法登录所请求的数据库 用户sa登录失败
  • js判断密码强弱
  • 奇门遁甲实例详解
  • Python HTTP客户端自定义Cookie实现实例
  • cmd怎么复制上一条命令快捷键
  • jQuery中ajax的load()与post()方法实例详解
  • android 属性动画原理
  • unityui
  • jquery是怎样实现链式调用的?
  • jquery确认取消对话框
  • 当期免抵退税不得免征和抵扣税额公式
  • 开票内容 大类
  • 交强险是什么样的照片
  • 广州代理记账公司地址
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设