本人在最近写的一个页面中遇到的一个问题
我的首页基本已经写完了.
然而在写路由守卫时,不知道遇到什么bug导致整个页面全部空白
这是错误的路由守卫代码
router.beforeEach(async(to,form,next)=>{
const token = localStorage.getItem('token');
// console.log(token)
const isLogin= !!token;
// console.log(isLogin)
const data = await userInfo();
// store.commit('chnageUserInfo',data.data);
if(to.matched.some(item=>item.meta.login)){
console.log('需要去登录')
if(isLogin){ //登录成功
if(data.error === 400){
next({name:'login'});
localStorage.removeItem('token');
return;
}
if(to.name === 'login'){ //登录成功后依旧跳转到登录页的跳转到home
next({name:'home'});
}else{
next()
}
return ;
}
if(!isLogin && to.name=="login"){ //没有登录成功,但是去登录页面
next()
}
if(!isLogin && to.name !=='login'){ //没有登录成功,也不去登录页面
next({name:"login"}) //强制跳转到指定页面
}
}else{
next()
}
})
export default router;
失败网页: (这时候点击页面没有任何反应也没有报错)
网页页没有报错,我检查再三才发现少写一个next()
加上后网页又正常了
由此可见一个next()就能导致整个网页崩盘.