Vue Router 的 afterEach 钩子适合做什么,为什么它不能中断导航?
围绕“Vue Router 的 afterEach 钩子适合做什么,为什么它不能中断导航”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 afterEach 在导航确认后触发、没有 next 回调因而只能做副作用(埋点、设置标题、滚动处理)。
Vue · 路由面试题第 1 页,显示第 1–14 题,共找到 14 道完整解析,可继续按分类、标签与关键词缩小范围。
按稳定语义路径排序
围绕“Vue Router 的 afterEach 钩子适合做什么,为什么它不能中断导航”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 afterEach 在导航确认后触发、没有 next 回调因而只能做副作用(埋点、设置标题、滚动处理)。
围绕“如何用 Vue Router 的组件内守卫实现表单未保存时离开页面的二次确认”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确用 beforeRouteLeave(或组合式 onBeforeRouteLeave)拦截并弹确认,结合脏状态标记决定是否放行。
围绕“Vue Router 在组合式 API 中如何使用组件内守卫,同一路由组件参数变化复用时该用哪个钩子”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 onBeforeRouteUpdate 捕获同组件参数变化、onBeforeRouteLeave 捕获离开,且两者需在 set。
围绕“Vue 项目里路由懒加载的分包如何通过 prefetch 或 preload 提前获取而不阻塞首屏”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 prefetch 利用浏览器空闲带宽预取后续路由、preload 与当前路由并行加载关键资源,及魔法注释配置方式。
围绕“Vue Router 守卫里做 token 校验这类异步鉴权时,如何避免页面闪现或守卫被绕过”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确守卫等待异步结果后再 resolve、校验失败 return false 或重定向,以及用户信息缓存避免每次导航都请求的设计。
围绕“Vue Router 的全局前置守卫里做登录重定向时,为什么会出现无限循环跳转,如何避免”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确重定向目标再次触发守卫形成循环的原因,及在守卫内判断目标路由本身、使用 return 代替重复 next 调用的修复方式。
围绕“Vue KeepAlive 的 include/exclude 匹配依据是什么,为什么常出现配置后不生效的问题”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确匹配的是组件自身 name 选项(script setup 需额外声明)而非路由名,及 max 数量的作用。
围绕“如何实现列表页进入详情后返回时保留滚动位置,而从其他页面进入列表时重新加载的 KeepAlive 缓存策略”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确结合路由 meta 标记与 include 动态计算(如在守卫中按来源路由增删缓存名单)的条件缓存方案。
围绕“Vue Router 的 router.push 返回的导航结果如何区分重复导航、被中止和被取消”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确用 isNavigationFailure 配合三种失败类型区分 aborted、cancelled、duplicated,并说。
围绕“Vue Router 在一次导航中,全局守卫、路由独享守卫和组件内守卫的完整执行顺序是什么”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖回答要按失活组件守卫→全局前置→复用组件 update→路由配置→新组件 enter→全局解析→组件内解析的顺序讲清。
围绕“在路由守卫或工具函数这类组件外环境使用 Pinia store,为什么必须显式传入 pinia 实例”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确 useStore 依赖注入上下文、组件外无法自动找到激活的 pinia 实例,需要共享同一个实例避免多份状态。
围绕“Vue Router 的路由懒加载如何通过动态 import 实现,如何控制打包产物按路由分组”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确路由 component 用 () => import() 触发按需加载与构建器自动分包,及命名 chunk 合并相关路由的做法。
围绕“如何用 Vue Router 的 meta 字段配合全局守卫实现基于角色的页面权限控制”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确在 meta 声明所需角色、beforeEach 中读取匹配链上的 meta 做判定并合并多级 meta 的规则。
围绕“把纯静态路由表、常量字典或巨型不可变 JSON 全量 reactive 化,在 Vue 中主要浪费什么,应该怎么降级”给出直接结论、机制拆解、可复现验证、常见误区与追问,重点覆盖需要明确多余代理与深层追踪带来内存/初始化成本,静态数据用 markRaw/shallowRef/普通常量。