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

  • 怎样利用QQ和微信营销获取精准流量(怎样利用qq和微信赚钱)

    怎样利用QQ和微信营销获取精准流量(怎样利用qq和微信赚钱)

  • iphonex清理喇叭灰尘(iphone清理喇叭声音)

    iphonex清理喇叭灰尘(iphone清理喇叭声音)

  • 内屏外屏怎么区分(内屏外屏怎么区别)

    内屏外屏怎么区分(内屏外屏怎么区别)

  • 限量秒杀时用wifi还是4g(限时秒杀流量大吗)

    限量秒杀时用wifi还是4g(限时秒杀流量大吗)

  • 抖音移除粉丝还能看到我的作品吗(抖音移除粉丝还能看到我的抖音吗)

    抖音移除粉丝还能看到我的作品吗(抖音移除粉丝还能看到我的抖音吗)

  • 爱奇艺学生卡限制多吗(爱奇艺学生vip可以开通多久)

    爱奇艺学生卡限制多吗(爱奇艺学生vip可以开通多久)

  • 电脑电源电压不稳有什么症状(电脑电源电压不够会出现什么情况)

    电脑电源电压不稳有什么症状(电脑电源电压不够会出现什么情况)

  • iphone11pro max和11pro区别(iphone11pro max和11屏幕效果对比大吗)

    iphone11pro max和11pro区别(iphone11pro max和11屏幕效果对比大吗)

  • 多媒体有哪几部分组成(多媒体有哪几部分构成)

    多媒体有哪几部分组成(多媒体有哪几部分构成)

  • oppoa11x手机有nfc功能吗(oppoA11X手机有语音助手功能吗)

    oppoa11x手机有nfc功能吗(oppoA11X手机有语音助手功能吗)

  • ip数据报的大小固定为多少字节(ip数据报的大小取决于物理网络的什么)

    ip数据报的大小固定为多少字节(ip数据报的大小取决于物理网络的什么)

  • 苹果自录视频功能在哪(苹果自己录视频怎么设置)

    苹果自录视频功能在哪(苹果自己录视频怎么设置)

  • ps里面怎么打希腊字母(ps如何打出各种符号)

    ps里面怎么打希腊字母(ps如何打出各种符号)

  • 京东能不能点外卖(京东能点外卖吗)

    京东能不能点外卖(京东能点外卖吗)

  • dubbo与springcloud的区别(dubbo与springcloud区别)

    dubbo与springcloud的区别(dubbo与springcloud区别)

  • 小米8青春版支持18w快充吗(小米8青春版支持红外遥控吗)

    小米8青春版支持18w快充吗(小米8青春版支持红外遥控吗)

  • 华为路况怎么关(华为手机如何关闭路况提醒)

    华为路况怎么关(华为手机如何关闭路况提醒)

  • 钉钉里怎么设置出差状态(钉钉里怎么设置管理员权限)

    钉钉里怎么设置出差状态(钉钉里怎么设置管理员权限)

  • vivoy93恢复出厂设置(vivoy93恢复出厂设置不能用怎么办?)

    vivoy93恢复出厂设置(vivoy93恢复出厂设置不能用怎么办?)

  • hd在哪里关闭(荣耀手机的hd在哪里关闭)

    hd在哪里关闭(荣耀手机的hd在哪里关闭)

  • vgmerge命令  合并两个卷组(merge命令合并不了数据)

    vgmerge命令 合并两个卷组(merge命令合并不了数据)

  • c语言中exit函数是什么(c语言中exit函数怎么用)

    c语言中exit函数是什么(c语言中exit函数怎么用)

  • 2022年代表着国内谷歌翻译已经退出了历史舞台,谷歌似乎已经全部禁用国内谷歌翻译-OK源码中国(2022年我们国家将举行什么样的盛会)

    2022年代表着国内谷歌翻译已经退出了历史舞台,谷歌似乎已经全部禁用国内谷歌翻译-OK源码中国(2022年我们国家将举行什么样的盛会)

  • 增值税滞纳金怎么做账
  • 为什么增值税不计入营业税金及附加
  • 赠送的代金券属于销售费用吗?
  • 发票开票地址是注册地址还是经营地址
  • 房地产企业对外投资案例
  • 非税收入包括哪些项目行政事业性收费
  • 递延收益税务处理方法
  • 资本金可以出借吗
  • 重复缴税怎么做账
  • 应收账款处置损益
  • 个人独资的企业性质是什么
  • 快递费税率是6还是9
  • 大额联行号和开户行号是一样的吗
  • 企业所得税季报是填累计数吗
  • 开普票可以抵扣进项票
  • 代购商品委托书怎么写
  • 租房修缮费扣除
  • 上市公司企业股东转让股份交什么税费
  • 企业购入交易性金融资产支付的交易费用
  • 年中建账损益类科目怎么录
  • 上月印花税计提多了如何冲回
  • win11最低硬件要求几代
  • 投资收益或亏损影响营业利润吗
  • windows11怎么显示我的电脑
  • 关闭非系统进程
  • 票据的功能及概念
  • vue3全局属性
  • laravel 5.4中实现无限级分类的方法示例
  • vue 登录模板
  • php正则函数内容匹配
  • 其他免税销售额>0时,免税性质代码不能为空是什么意思
  • css转换器
  • vue开发环境和生产环境域名配置
  • vgreduce --removemissing
  • 结转销售成本的方法
  • 佣金怎么收税
  • 企业所得税那些是免税的收入
  • dede织梦怎么转成zblog
  • 购买原材料运输费的增值税计入什么科目
  • 小企业销售折让与销售退回发生时如何处理
  • sa密码不满足强密码要求
  • 以前年度应收账款贷方余额如何调整
  • 企业注销在建工程怎么处理
  • 装修费按几年摊销费用
  • 建筑行业跨期收益怎么算
  • 银行的手续费开票怎么开
  • 申请开立基本存款账户时,银行应按照
  • 融资租赁与经营租赁的区别主要是
  • 财务费用中的汇兑损益和汇兑收益的区别
  • 增值税其他免税销售额
  • 计入当期损益是不是计入三大期间费用
  • mysql 5.7.30安装
  • mysql修改默认编码
  • .exe是什么软件
  • tvt_reg_monitor_svc.exe进程是什么
  • backup file
  • win10 rs3
  • msoobe.exe是什么
  • win8.1怎么用
  • 置顶朋友圈怎么设置
  • nodejs创建vue
  • Android中的数据存储方式有五种,分别是
  • javascript事件委托的用法及其好处简析
  • [置顶]电影名字《收件人不详》
  • 怎么通过微信号查到对方的手机号码
  • unity 2danimation
  • android系统启动流程
  • jquery返回顶部代码
  • 备忘录全部笔记
  • html5三级菜单
  • 怎么打印纳税申报表带章的
  • 无偿赠送的税务怎么处理
  • 企业购买小轿车一辆会计分录
  • 丰台和朝阳中间是哪里
  • 福建地税办税人变更流程
  • 外购已税小汽车用于连续生产小汽车为啥可以抵扣
  • 河南地税税率怎么计算
  • 企业报税年报如何填写
  • 小规模纳税人的增值税怎么计算
  • 房屋租赁税房东不承担怎么办理
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设