前端/移动开发面试题更新 2026-08-05

请结合你的项目经验,谈谈 Vue Router 全局路由守卫的基本概念和典型用法,并描述一个你实际使用它的业务场景。

前端/移动开发风险判断技术原理Vue Router

考察说明

考查对 Vue Router 全局守卫机制的理解及实际应用能力。

回答思路

  1. 【回答框架 1】Vue Router 全局守卫是注册在 router 实例上的导航钩子,包括 beforeEach、beforeResolve、afterEach,它们在路由导航确认前或后执行,用于控制导航流程。
  2. 【回答框架 2】beforeEach 在导航被确认前触发,常用于登录校验、权限控制、页面标题设置等;beforeResolve 在导航被确认前、所有组件内守卫和异步路由组件解析后触发,适合数据预取;afterEach 在导航完成后触发,适合埋点、滚动行为。
  3. 【回答框架 3】在项目中,我在 beforeEach 中检查用户登录状态,若未登录且目标路由需要认证,则重定向到登录页;使用 next(false) 取消导航,或 next('/login') 跳转。同时,通过 meta 字段标记哪些路由需要权限,实现动态权限过滤。
  4. 【回答框架 4】使用守卫时需注意 next() 必须被调用一次,否则导航会挂起;异步操作如 token 验证需在回调中调用 next,避免导航提前完成。另外,afterEach 不能修改导航,只适合执行副作用。
  5. 【关键点 1】全局守卫类型:beforeEach、beforeResolve、afterEach
  6. 【关键点 2】导航流程:守卫按顺序执行,next 决定导航放行或取消
  7. 【关键点 3】meta 字段可用于声明路由权限或标题
  8. 【关键点 4】实际场景:登录态校验、权限重定向、页面埋点
  9. 【关键点 5】易错点:忘记调用 next 或多次调用
  10. 【易错点 1】在异步验证后忘记调用 next 导致导航挂起
  11. 【易错点 2】在 afterEach 中试图修改导航(无效)
  12. 【易错点 3】未使用 meta 字段导致权限逻辑散落在守卫中