什么是beforeEach?beforeEach是一个vue-router的路由导航钩子,一般我用它来做路由守卫。什么是路由守卫?比如我们没有登录的时候,跳转到登录页面。如果已登录,则正常跳转。让我们看一下无限循环代码。exportconstrouter=newRouter(RouterConfig);router.beforeEach((to,from,next)=>{lettoken=sessionStorage.getItem('token');if(token){next();}else{next({path:'/p404'})}});当会话中不存在令牌时,它会跳转到/p404。此时路由发生变化,如果再次判断,则再次跳转到/404,造成死循环。在代码里做个判断,如果跳转到p404,就安心的进入路由。修改后的代码如下。exportconstrouter=newRouter(RouterConfig);router.beforeEach((to,from,next)=>{lettoken=sessionStorage.getItem('token');if(token){next();}else{if(to.path=='/p404'){next();}else{next({path:'/p404'})}}});
