vue的全局导航守卫beforeEach

新手上路,请多包涵

关于

vue中的全局导航守卫 判断是否登录进行页面的跳转

router.beforeEach((to, from, next) => {
if(to.matched.some(record => !record.meta.noCheckSession)) {

// 这个路由需要auth,检验是否登录了.

let isLogin = auth.checkAuth()
// console.log('need login', isLogin);
if(!isLogin){

    // 没有登录,重定向到登录页面    

  console.error('Place login!')
  next({
    path: '/login',
    query: { redirect: to.fullPath }
  })
}else{
  next()
}

}else{

next()

}
}

如果未登录 直接 next(

 path:'/login'

})

query: { redirect: to.fullPath } 有什么作用

你期待的结果是什么?实际看到的错误信息又是什么?

阅读 2.7k
2 个回答
next({
    path: '/login',
    query: { redirect: to.fullPath }
  })

next({ path: '/' }): 跳转到一个不同的地址
query: { redirect: to.fullPath }:传递一个名为redirect的参数,值为to.fullPath

vueRouter路由守卫

vueRouter路由组件传参

登录以后直接回到之前看的页面而不是首页

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题