vue-router

问:需要用户没有登录时先跳到登录页,怎么做?
一开始这样写:

router.beforeEach((to, from, next) => {
    let token = localStorage.getItem('token');
    if(token != null){
        next();
    }
    else{
        next({
            path : '/login'
        });
    }
});

结果发现当用户没有登录时,页面路由不停跳转,怎么回事?
答:因为路由不停地走router.beforeEach里的else语句,跳到'/login'路由以后,又跳到'/login'了,这样就陷入死循环了,目前我的解决方案是在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'
        });
    }
});
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。