問:需要用戶沒有登錄時先跳到登錄頁,怎么做?
一開始這樣寫:
router.beforeEach((to, from, next) => {
let token = localStorage.getItem('token');
if(token != null){
next();
}
else{
next({
path : '/login'
});
}
});
結(jié)果發(fā)現(xiàn)當用戶沒有登錄時,頁面路由不停跳轉(zhuǎn),怎么回事?
答:因為路由不停地走router.beforeEach里的else語句,跳到'/login'路由以后,又跳到'/login'了,這樣就陷入死循環(huán)了,目前我的解決方案是在router.beforeEach里對'/login'路由進行特殊處理:
router.beforeEach((to, from, next) => {
let token = localStorage.getItem('token');
if(to.path == '/login'){
next();
}
if(token != null){
next();
}
else{
next({
path : '/login'
});
}
});