路由“快照”是页面加载时对params、query等参数的一次性静态读取,不响应后续变化,适用于初始化逻辑;正确做法是在setup中调用useroute()直接访问route.params或route.query,避免解构以保持响应性。

路由“快照”是指页面加载瞬间,对当前 URL 中的 params、query、hash 等参数的一次性静态读取。它不响应后续地址栏手动修改或参数变化,适合用于初始化逻辑——比如进页面时根据 ID 拉取一次数据。
为什么用快照做初次抓取?
因为页面刚挂载时,路由状态已确定,但组件尚未开始监听变化。此时用 useRoute() 直接读取 route.params 或 route.query,就能拿到最原始、最可靠的入口参数,避免空值或旧值干扰。
如何用 useRoute 正确获取快照参数
在 setup 中调用 useRoute(),直接访问其属性即可:
开箱即用的技能链路由引擎。13 条预定义链覆盖搜索、开发、审查、MLOps、法律、创意等场景,三层路由架构(触发词→SAD反馈→DAG编排),recall@10=96.97%。配置驱动(chains.yaml),零代码扩展。pip install skill-weave-chains 一键安装。
-
route.params.id→ 获取路径参数(如/user/123中的123) -
route.query.token→ 获取查询参数(如?token=abc中的abc) -
route.path和route.name可辅助判断当前路由上下文
注意:不要解构 route,否则会丢失响应性;也不要在 onMounted 外直接使用未声明的变量。
配合数据请求的典型写法
初次加载时,通常希望“进页面就拉数据”,而不是等后续变化再触发:
- 在
onMounted或onBeforeMount中读取route.params.id并调用 API - 若需同时支持地址栏手动改参后刷新数据,才额外加
watch监听route.params.id - 对于纯初始化场景(如登录跳转带 token),快照读取足够且更轻量,无需订阅
快照 vs 订阅:什么时候该选哪个?
快照适用于“只关心进来那一刻”的逻辑;订阅(watch 或 route.params 响应式依赖)适用于“参数变,页面也要实时更新”的交互场景。两者不互斥,可共存——先用快照初始化,再用 watch 应对后续变更。









