126  
查询码:00000838
vue路由 全局前置守卫beforeEach无限循环问题
作者: 郁冲冲 于 2019年12月26日 发布在分类 / 人防组 / 人防前端 下,并于 2019年12月26日 编辑
全局前置守卫beforeEach无限循环问题

在这里需要注意的是,通过next({name:'xxx'}),就要通过to.name ==='login'去判断;如果是通过next({path:'xxx'})跳转,就要通过to.path==='/login'去判断,他们必须一一对应。这两种方式是改变路由的跳转路径,但是不管怎么样,最后一定要执行next()才可以被resolved。如果next()没有被执行,就会出现无限循环,最后浏览器就崩了!


总结一下:

 1. beforeEach收尾中必须要执行next()才不会出现无限循环 
 2. 路由跳转时,属性需要一致,to.name/to.path等

router.beforeEach((to, from, next) => {
if (localStorage.getItem('username')) { // 如果已经登录的话
next();
} else {
if (to.path === '/login') { // 如果是登录页面的话,直接next()
  next();
} else { // 否则 跳转到登录页面
  next({
    path: '/login'
  });
}
}
});



 推荐知识

 历史版本

修改日期 修改人 备注
2019-12-26 14:25:43[当前版本] 郁冲冲 1.1.0

知识分享平台 -V 4.8.7 -wcp