Skip to main content

route_data

Function route_data 

Source
pub fn route_data<S, T, F, Fut>(
    source: impl Fn() -> S + Send + Sync + 'static,
    fetcher: F,
) -> RouteData<T>
where S: PartialEq + Clone + Send + Sync + 'static, F: Fn(S) -> Fut + Send + Sync + 'static, Fut: Future<Output = PageJson<T>> + Send + 'static,
Expand description

创建路由数据(语义同 Resource::new:服务端执行 fetcher 并把结果写进 HTML, 客户端水合直接复用;source 变化即重新请求)。fetcher 应是 #[leptos::lazy] 函数,主包里只留下这一份与数据类型无关的资源代码。

悬停预取按 fetcher 的类型加 source 的值查缓存:公开页面传具名函数项, 无参函数用 unit() 包装;闭包字面量不会命中预取(见模块文档)。

SSR 时同一请求内 (fetcher 类型, source) 相同的调用复用同一个资源(见 RouteDataRegistry)。