vue导航守卫控制登录跳转

业务场景:

  如果用户已登录的情况下,跳转登录页时,会控制转到首页;

  如果用户未登录的情况下,就跳转至登录页面;

// 路由守卫
router.beforeEach((to,from,next)=>{
  let token = JSON.parse(localStorage.getItem('pro__token'));
  if (token) {
    if(to.path == "/home") {
      next()
    }
    if (to.path === '/login' || to.path === '/') {
      next({path: '/home'})
    }
  } else {
    if (to.path === '/login' || to.path === '/') {
      next();
    } else {
      alert('您还未登录,请先登录');
      next('/login');
    }
  }
});

如果不加 to.path == "/home"这句的话,next({path: '/home'})就不会跳转,因为next的时候,会重新触发执行这个钩子

原文地址:https://www.cnblogs.com/ZhaoWeiNotes/p/14200755.html