Vue 3 项目怎么在初始化时配置前端路由守卫(Navigation Guards)

夜雪小哥_7524

夜雪小哥_7524

2026-10-20

649人浏览

原创

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

vue 3 项目怎么在初始化时配置前端路由守卫(navigation guards)

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-composition-api-best-practices

Vue 3 组合式 API 与

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Vue 教程
Vue 教程

共42课时 | 17.2万人学习

国外Web开发全栈课程全集
国外Web开发全栈课程全集

共12课时 | 1.4万人学习

Vue.js 微实战--十天技能课堂
Vue.js 微实战--十天技能课堂

共18课时 | 1.7万人学习