美文网首页
vue中监听未登录跳转至登录页

vue中监听未登录跳转至登录页

作者: Henry01 | 来源:发表于2022-03-17 17:53 被阅读0次

在.main.js文件里的.$mount('#app')后加入如下代码:

// 全局路由守卫
router.beforeEach((to, from, next) => {
  // to: Route: 即将要进入的目标 路由对象
  // from: Route: 当前导航正要离开的路由
  // next: Function: 一定要调用该方法来 resolve 这个钩子。执行效果依赖 next 方法的调用参数。

  const nextRoute = ['home', 'good-list', 'good-detail', 'cart', 'profile']; // 页面组件名集合
  const isLogin = localStorage.getItem('name') // 是否登录
  // 未登录状态;当路由到nextRoute指定页时,跳转至login
  if (nextRoute.indexOf(to.name) >= 0) {  
    if (!isLogin) {
      console.log('未登录~');
      router.push({ name: 'login' })
    }
  }
  // 已登录状态;当路由到login时,跳转至home 
  if (to.name === 'login') {
    if (isLogin) {
      router.push({ name: 'home' });
    }
  }
  next();
});

export default router;

相关文章