Skip to main content

Module route_prefetch

Module route_prefetch 

Source
Expand description

链接悬停预取:把站内地址映射到路由,提前下载目标页面的 WASM 分包。

JS 协调器(libs/yggdrasil-core/src/route-transitions.ts)在鼠标停留、键盘聚焦或触屏 按下站内链接时,把“路径 + 查询”(无前缀、无哈希)交给 prefetch。

match_route 的匹配表与 src/app.rs 的路由表一一对应,新增路由时两处一起改; 漏改只会少一次预取,不影响导航。

Enums§

AdminPage
/admin/* 子页面。
RouteTarget
悬停目标。参数是路由器会看到的值:路径段经 Url::unescape 解码,查询值同样解码。

Functions§

match_route
route 为“路径 + 可选查询”(无前缀、无哈希)。不匹配任何页面返回 None。
prefetch
预取目标路由:总是预取视图分包;with_data 时再预取页面数据。 is_admin 为假时跳过 /admin*:访客悬停后台链接不下载后台分包。
query_value 🔒
查询串里第一个名为 key 的参数值(键、值都解码)。
route_view_names
直开该页面时水合要加载的路由视图分包名:Lazy::<XxxRoute> 的视图函数在分包清单里 叫 __xxx_route_view_<哈希>,这里给出其中的 xxx(后台页面先是外壳,再是子页面)。 SSR 据此只为当前路由预载分包,见 app::HydrationScriptsWithPreload;漏改只会少预载。