关于vue的router使用beforeEach造成死循环的问题

刚接触的你一般会这样写:

router.beforeEach((to, from, next) => {
    
    
    const isLogin = sessionStorage.getItem('loginData')
    if (isLogin) {
    
    
        next()
    } else {
    
    
        next('/error')
    } 
})

但是!这样会造成死循环,解决办法:

router.beforeEach((to, from, next) => {
    
    
    const isLogin = sessionStorage.getItem('loginData')
    if (isLogin) {
    
    
        next()
    } else {
    
    
        if (to.path === '/login') {
    
     //这就是跳出循环的关键
           next()
        } else {
    
    
            next('/login')
        }
    } 
})

猜你喜欢

转载自blog.csdn.net/Xl4277/article/details/103179497
今日推荐