路由守卫

138 阅读1分钟

当我们在未登录账号时,我们去往购物车时,本应发送请求获取购物车的列表,可未登录则没有token则发送请求时会获取不到信息,此使则应使用导航守卫,让未登录账号时,不能到购物车页面或者其他,应直接跳转到登录页面

前端router/index.js中写(配置路由的地方)

router.beforeEach((to, from, next) => {
  //未登录不能进入的路由名
  let nextRoute = ["cart", "path", "index", "path-list"];
  //是否是登录中
  let userInfo = JSON.parse(localStorage.getItem("teaUserInfo"));
  //要去的地址在nextRoute的数组中,则执行
  //当前进入的页面是否需要验证
  if (nextRoute.indexOf(to.name) >= 0) {
    if (!userInfo) {
      router.push("/login");
    }
  }
  next();
});