createAsync
编辑此页面一个异步原语,其函数跟踪机制类似于 createMemo
。
createAsync
期望返回一个 Promise,然后将其转换为一个 Signal。
在准备就绪之前读取它会触发 Suspense/Transitions。
caution:
在 createResource
中直接使用 cache
将无法正常工作,因为获取器不是响应式的。这意味着它将无法正确地失效。
这是对 createResource
的轻量级封装,作为将在 Solid 2.0 核心中引入的未来原语的替代品。
建议使用 createAsync
而不是 createResource
,特别是在 SolidStart 应用中,因为 createAsync
能更好地与 cache 辅助函数配合使用。
import { createAsync } from "solid/router";import { Suspense } from "solid-js";import { getUser } from "./api";
export function Component () => { const user = createAsync(() => getUser(params.id));
return ( <Suspense fallback="loading user..."> <p>{user()}</p> </Suspense> );
选项
名称 | 类型 | 默认值 | 描述 |
---|---|---|---|
name | string | undefined | 资源的名称。用于调试目的。 |
deferStream | boolean | false | 如果为 true,Solid 将等待资源解析完成后再刷新流。 |
initialValue | any | undefined | 资源的初始值。 |
onHydrated | function | undefined | 资源水合完成时调用的回调函数。 |
ssrLoadFrom | "server" | "initial" | "server" | SSR 的初始值来源。如果设置为 "initial" ,资源将使用 initialValue 选项而不是获取器返回的值。 |
storage | function | createSignal | 返回信号的函数。可用于为资源创建自定义存储。这仍处于实验阶段。 |