更新时间:2023-06-29 来源:黑马程序员 浏览量:
Vue中的导航守卫主要用于控制路由的访问权限,导航守卫的工作示意图如下:
每次发生路由的导航跳转时,都会触发全局前置守卫。因此,在全局前置守卫中,程序员可以对每个路由进行访问权限的控制。
//创建路由实例对象 const router - new VueRouter({..… }) // 调用路由实例对象的 beforeEach方法,即可声明“全局前置守卫” //每次发生路由导航跳转的时候,都会自动般发fn这个“回调函数” router.beforeEach(fn)
全局前置守卫的回调函数中接收3个形参,格式为:
//创建路由实例对象 const router = new VueRouter({ .…. }) //全局前置守卫 router.beforeEa:((to,from, next) => ( //to是将要访问的路由的信息对象 //from是将要离开的路由的信息对象 // next是一个函数,调用 next()表示放行,允许这次路由导航 })
参考示意图,分析 next 函数的 3 种调用方式最终导致的结果:
当前用户拥有后台主页的访问权限,直接放行:next()。
当前用户没有后台主页的访问权限,强制其跳转到登录页面:next('/login')。
当前用户没有后台主页的访问权限,不允许跳转到后台主页:next(false)。
router.beforeEach((to, from, next) ▪> { if (to.path === '/main'){ const token ▪ localStorage.getItem('token') if (token)( next()//访问的是后台主页,且有 token 的值 } else { next('/login')//访问的是后台主页,但是没有 token的值 } } else { next()//访问的不是后台主页,直接放行 } })
【AI设计】北京143期毕业仅36天,全员拿下高薪offer!黑马AI设计连续6期100%高薪就业
2025-09-19【跨境电商运营】深圳跨境电商运营毕业22个工作日,就业率91%+,最高薪资达13500元
2025-09-19【AI运维】郑州运维1期就业班,毕业14个工作日,班级93%同学已拿到Offer, 一线均薪资 1W+
2025-09-19【AI鸿蒙开发】上海校区AI鸿蒙开发4期5期,距离毕业21天,就业率91%,平均薪资14046元
2025-09-19【AI大模型开发-Python】毕业33个工作日,就业率已达到94.55%,班均薪资20763元
2025-09-19【AI智能应用开发-Java】毕业5个工作日就业率98.18%,最高薪资 17.5k*13薪,全班平均薪资9244元
2025-09-19