Vue中模块化路由之后,添加路由守卫beforeEach之后,next传递参数会陷入死循环的问题

news/2024/7/9 23:52:01 标签: vue

next传递参数的时候出现的递归问题

本来想做一个测试,写了一个简单的登录注册,想着判断一下登录的token之后做一个路由跳转,但是在router.beforeEach((to,from,next)=>{next()})是可以正常跳转的,但是只要next传递参数的时候就会出现如下的错误:

router.beforeEach((to,from,next)=>{
	next('/reg')
})

RangeError: Maximum call stack size exceeded
大概查了一下,栈溢出了,然后我就在想自己在哪儿用过相关的递归,本以为自己用了require.context()来动态读取路由模块导致的问题,但是在我改成普通的import导入的时候,出现了同样的问题。
后来就去查了一下Vuerouter的文档,是这么说的
next(’/’) 或者 next({ path: ‘/’ }): 跳转到一个不同的地址。**当前的导航被中断,然后进行一个新的导航。**你可以向 next 传递任意位置对象,且允许设置诸如 replace: true、name: ‘home’ 之类在这里插入代码片的选项以及任何用在 router-link 的 to prop 或 router.push 中的选项。
意思是如果路由跳转的时候next传递参数,他会中断正在执行的路由,然后又重新走一遍,然后又要经过全局的导航守卫,从而导致无线调用而栈溢出。

so解决的办法就是判断一下

router.beforeEach((to,from,next)=>{
	let{path}=to;
	if(path=="/reg"){
		next()
	}else{
		next('/reg')
	}
})

http://www.niftyadmin.cn/n/1481392.html

相关文章

隐藏滚动条

2019独角兽企业重金招聘Python工程师标准>>> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns"http://www.w3.org/1999/xhtml"> <head…

基于百度地图的数据可视化,包括大量数据的标绘以及热力图的插入

在日常的开发工作中经常可以遇到地图的相关应用&#xff0c;但是大部分的问题我们都可以通过查询相关的地图api接口就可以得到我们想要的结果&#xff0c;无非会在数据处理以及一些基础的函数的问题&#xff0c;但是如果想在地图上实现一些大量数据的标绘制的时候&#xff0c;问…

1.9-zabbix增加客户端监控

zabbix 比 nagios 好的地方是&#xff0c;zabbix 不需要命令行去配置&#xff0c; 只需要在浏览器里面点点按钮就可以了&#xff0c;这样就直观和方便了很多。 在配置客户端之前&#xff0c; 也需要在客户端上安装 zabbix。# yum install -y zabbix20-agent然后更改客户端机器上…

iOS开发 MVVM-ReactiveCocoa资料

2019独角兽企业重金招聘Python工程师标准>>> 相对好懂一点的&#xff1a; http://southpeak.github.io/blog/2014/08/02/reactivecocoazhi-nan-%5B%3F%5D-:xin-hao/ http://southpeak.github.io/blog/2014/08/02/reactivecocoazhi-nan-er-:twittersou-suo-shi-li/ …

[译] 关于 WebAssembly 你应该知道的 7 件事

粗略翻译, 推荐看原文https://auth0.com/blog/2015/10/14/7-things-you-should-know-about-web-assembly/了解 WebAssembly, 了解 Web 的将来介绍 如果你不熟悉 WebAssembly 后面的概念, 可以读一下:ArsTechnica 的 Peter Bright 写的优秀的论文,或者是 Brendan Eich 在他的个人…

渐变色文字

文字渐变&#xff1a; HTML: <h2 class"text-gradient">ABC</h2> CSS: .text-gradient{ font-size: 10em; dipslay: inline-block; background-image: -webkit-gradient(linear,0 0,0 bottom,from(rgba(0, 128, 0, 1)),to(rgba(51, 51, 51, 1))); -webki…

date详解

在linux环境中&#xff0c;不管是编程还是其他维护&#xff0c;时间是必不可少的&#xff0c;也经常会用到时间的运算&#xff0c;熟练运用date命令来表示自己想要表示的时间&#xff0c;肯定可以给自己的工作带来诸多方便。 1&#xff0e;命令格式&#xff1a; date [参数]...…