vue-router next()一直循环
在路由守卫中添加判断,如果路径错误的话,跳到404页面,代码如下:beforeRouteLeave (to, from, next) {if(to.path==='/home'){next();}else{next('/404')}但是会一直循环判断,始终进不去404,加了一个判断之后可以进去,代码如下...
·
在路由守卫中添加判断,如果路径错误的话,跳到404页面,代码如下:
beforeRouteLeave (to, from, next) {
if(to.path==='/home'){
next();
}else{
next('/404')
}
但是会一直循环判断,始终进不去404,加了一个判断之后可以进去,代码如下:
beforeRouteLeave (to, from, next) {
if(to.path==='/home'){
next();
}
if(to.path == "/404"){
next();
}
else{
next('/404')
}
解决方法是从这儿找的,解释如下:
当执行钩子函数时如果遇到next(’/404’)等时会中断当前导航,比如当前导航是去/a,那么遇到next(’/404’)后就会把to.path改为/404,然后会重新触发这个离开的钩子,注意:此时会重新触发执行这个钩子,而不是在这个钩子函数继续执行的,之前是一直没理解这里,以为是执行next(’/404’)后就会直接跳到404页面呢,当重新触发后就会继续执行next(’/404’)所以会一直循环。至于解决办法就是判断下,如果已经是/404了就next()。
更多推荐
已为社区贡献2条内容
所有评论(0)