vue 3路由守卫需分层配置:全局前置守卫(router.beforeeach)用于登录校验;路由独享守卫(beforeenter)精准控制单页;beforeresolve做最终数据检查;组件内守卫(onbeforerouteleave/update)响应组件状态。

Vue 3 项目初始化时配置前端路由守卫,核心是在创建路由实例后、挂载应用前,按需注册全局、路由独享或组件内守卫。关键不是“堆逻辑”,而是分层明确、时机准确、返回规范。
全局前置守卫:统一入口拦截
这是最常用的初始化守卫,适合登录校验、权限兜底等跨页面逻辑。在 src/router/index.js 中配置:
- 调用 router.beforeEach((to, from) => {...}),不再传
next参数(Vue Router 4 已废弃) - 通过
to.meta.requiresAuth判断是否需要认证,结合 Pinia 或 localStorage 检查 token - 返回
{ name: 'Login', query: { redirect: to.fullPath } }实现带来源的重定向 - 未满足条件时返回
false可中止导航,URL 会回退到from对应地址
路由独享守卫:精准控制单个页面
在定义 routes 数组时,直接为某条路由添加 beforeEnter 字段,只对该路径生效:
vue-composition-api-best-practices
Vue 3 组合式 API 与
热门下载
相关下载
精品课程
相关推荐
/
热门推荐
/
最新课程
最新文章
