更新时间: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()//访问的不是后台主页,直接放行
}
})毕业16个工作日,平均薪资13180元,就业率100%,广州黑马AI智能应用开发(Java)学科20250529班
2026-03-06毕业32个工作日,平均薪资11147元,就业率95%,广州黑马AI智能应用开发(Java)学科20250326班
2026-03-05黑马程序员2025全国就业数据发布:全学科平均就业率92.07%,AI开发类就业平均薪资达11869.67元。
2026-03-05黑马全国校区齐开班!场面太太太壮观了!
2026-03-03AI智能应用开发课程紧贴企业刚需,全程高效学习,直达中高级软件开发水平
2026-02-28风口正劲!黑马程序员又一AI智能应用开发班毕业当天100%就业!
2026-02-27