关于vue-router拦截器得问题

图片描述

我得需求是,用户打开页面,判断index页(/默认是是index)是否有登录状态,没有跳login,有就继续,现在得问题是,我默认打开index连接器拦截不到,直接next了。然后我点其他路由在返回index页得时候就拦截到了,请问这个什么问题,为什么一开始进去拦截不到

阅读 2.9k
1 个回答

可以用beforeEach做路由守卫

router.beforeEach((to, from, next) => {
  // to and from are both route objects
  let login = sessionStorage['token'] || null
  let path = to.path
  if (path === '/login') {
    next()
    return
  }
  // 这里用你的 to.meta.requireAuth 进行判断是否需要登录
  let requireAuth = to.meta.requireAuth
  if (requireAuth) { // 需要登录
    if (!login) { // 没有登录信息
      next({
        path: '/login'
      })
    } else { // 有登录信息直接进入目标页面
      next()
    }
  } else { // 不需要登录信息,直接进入目标页面
    next()
  }
})
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题