位置: 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外键约束的基本语法结构)

  • 惠普1005和m1005的区别(惠普m1005和1005w)

    惠普1005和m1005的区别(惠普m1005和1005w)

  • 京东买空调免费安装吗(京东买空调免费打孔吗)

    京东买空调免费安装吗(京东买空调免费打孔吗)

  • 苹果手机圆按键失灵(苹果手机圆按键按是什么型号)

    苹果手机圆按键失灵(苹果手机圆按键按是什么型号)

  • airpods重置后名字会变吗(airpods重置后名字没有改变)

    airpods重置后名字会变吗(airpods重置后名字没有改变)

  • 相册打不开是什么原因(相册打不开是什么意思)

    相册打不开是什么原因(相册打不开是什么意思)

  • qq拍照默片怎么回事(qq拍照怎么设置)

    qq拍照默片怎么回事(qq拍照怎么设置)

  • iqoov1824a是什么型号(iqoov1824a是什么手机)

    iqoov1824a是什么型号(iqoov1824a是什么手机)

  • 手机没电打电话过去是什么状态(手机没电打电话会提示关机吗)

    手机没电打电话过去是什么状态(手机没电打电话会提示关机吗)

  • 微信绿码哪里找(微信上绿码怎么找)

    微信绿码哪里找(微信上绿码怎么找)

  • 计算机按用途可分为(计算机按用途可以分为通用计算机和专用计算机)

    计算机按用途可分为(计算机按用途可以分为通用计算机和专用计算机)

  • 抖音建群最多多少人(抖音创建群聊最多多少人)

    抖音建群最多多少人(抖音创建群聊最多多少人)

  • 手提电脑黑屏如何恢复(手提电脑黑屏如何解决方法)

    手提电脑黑屏如何恢复(手提电脑黑屏如何解决方法)

  • 退出微信后别人知道吗(退出微信后别人打微信电话)

    退出微信后别人知道吗(退出微信后别人打微信电话)

  • 苹果手机imei是什么意思(苹果手机imei是唯一的吗)

    苹果手机imei是什么意思(苹果手机imei是唯一的吗)

  • ios字体是什么(苹果字体是干什么用的)

    ios字体是什么(苹果字体是干什么用的)

  • OPPO k5如何投屏电视(oppo k1怎么投屏)

    OPPO k5如何投屏电视(oppo k1怎么投屏)

  • x27摄像头灯怎么设置(x270摄像头灯不亮)

    x27摄像头灯怎么设置(x270摄像头灯不亮)

  • 快手直播不显示人数了(快手直播不显示进来的人咋办)

    快手直播不显示人数了(快手直播不显示进来的人咋办)

  • 钉钉上抄送人怎么选(钉钉上抄送人怎么删除)

    钉钉上抄送人怎么选(钉钉上抄送人怎么删除)

  • 微信如何注册公众号(微信如何注册公司地址)

    微信如何注册公众号(微信如何注册公司地址)

  • tenda信号扩展器怎么重新设置(tenda信号扩展器怎么恢复出厂设置)

    tenda信号扩展器怎么重新设置(tenda信号扩展器怎么恢复出厂设置)

  • 抖音买东西怎么看订单(抖音买东西怎么买运费险)

    抖音买东西怎么看订单(抖音买东西怎么买运费险)

  • oppor15屏幕分辨率在哪(oppor15的分辨率)

    oppor15屏幕分辨率在哪(oppor15的分辨率)

  • 华为5g手机有哪些(华为5g手机有哪些款式)

    华为5g手机有哪些(华为5g手机有哪些款式)

  • 电脑中病毒了怎么办?解决方法(电脑中病毒了怎么重装系统)

    电脑中病毒了怎么办?解决方法(电脑中病毒了怎么重装系统)

  • 学会在Vue项目中插入高德地图JS API与地图的相关设置,看这一篇就够了~(保姆级精简教学)(vue项目中技巧知识点)

    学会在Vue项目中插入高德地图JS API与地图的相关设置,看这一篇就够了~(保姆级精简教学)(vue项目中技巧知识点)

  • 库存生产用钢材属于资产吗
  • 取得虚开普票怎样补增值税
  • 企业所得税几大税种
  • 工会经费按什么交
  • 注册资本转出可以吗
  • 开发票税前税后
  • 资产报废变现收入应开具哪种发票
  • 新企业所得税法规定的企业所得税基本税率
  • 税收主要分类方法
  • 进项税有余额但没有余额
  • 境外企业提供国外服务
  • 买一送一的增值税如何计算例题
  • 折旧和摊销可以没有吗
  • 调解书和判决书执行力度一样吗
  • 消费税漏缴怎么补缴
  • 工程中材料超耗怎么处理
  • 小规模付增值税怎么做账
  • 应收和预收怎么算
  • 贸易型企业怎么做账
  • 固定资产未开发票怎么入账
  • 不发工资先去劳动局投诉还是仲裁
  • 苹果11怎么充不上电了
  • windows 11什么时候
  • mac怎么快速显示桌面
  • 汽车修理公司的成本怎么核算
  • 筹建期间费用计入什么
  • 蚊子叮咬怎么办手抄报
  • 建筑公司预收账款一般是哪些
  • 施工单位代建收费标准
  • framework在哪看
  • php动态读取数据的代码
  • 对于企业无法支付的应付账款
  • go开发web项目
  • 租金没有发票可以退税吗
  • 社保缴费基数是怎么确定的
  • 包装物为什么是无菌的
  • python如何运行
  • 开票钱收不回怎么办
  • 增值税专用发票几个点
  • 应纳税所得额是利润总额还是净利润
  • 接收商业承兑汇票有风险吗
  • 仓库发货打包员工作内容
  • 纸质银行承兑到期怎么办
  • 专项应付款如何核算
  • 应交税金—应交增值税(进项税额)
  • 施工企业如何确权
  • 票据质押如何做账
  • 招待费用的进项发票可以抵扣吗
  • 营改增对企业税负影响
  • 什么费用可以列入研发费用
  • 预付卡的含义
  • 公司租用私人汽车怎么操作
  • 领用材料属于什么费用
  • 本年利润的会计分录
  • 事业单位企业所得税汇算清缴怎么做
  • 印花税如何做账报税
  • 如何找回丢失数据
  • sql中case when的用法
  • win8怎样获取管理员权限
  • win10虚拟机无法安装
  • win7共享文件夹设置访问权限
  • linux查内存信息
  • win10系统百度网盘链接
  • perl scripts
  • http://www.2cto.com/kf/201402/280576.html
  • 正二十面体怎么建模
  • android 自定义
  • 批处理命令教程 pdf
  • React Native react-navigation 导航使用详解
  • js函数重名
  • vue.js打包部署
  • 安卓框架是什么怎么用
  • js 严格的迭代语句
  • pythen开发环境
  • 河南商丘医疗保险在微信上怎么交
  • 一般纳税人注销公司需要查账吗
  • 亚马逊网上商城
  • 美国非税收入排名榜
  • 增值税普通发票可以抵扣吗
  • 2017企业所得税年度申报表
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设