API reference · generated from source
Function: preloadedQueryOptions()#
function preloadedQueryOptions<Query>(preloaded): IPreloadedQueryNodeOptions<Query>;Defined in: packages/retree-react-convex/src/preload.ts:64
Derive ConvexQueryNode options from a Preloaded payload produced by
preloadQuery from convex/nextjs.
Type Parameters#
| Type Parameter |
|---|
Query extends QueryReference |
Parameters#
| Parameter | Type | Description |
|---|---|---|
preloaded | Preloaded<Query> | Payload returned by preloadQuery from convex/nextjs. |
Returns#
IPreloadedQueryNodeOptions<Query>
Options with args and initialState for a ConvexQueryNode.
Remarks#
This is the Retree equivalent of Convex React's usePreloadedQuery for
Next.js RSC hydration:
- Server component: run
preloadQuery(api.tasks.list, args)and pass the returned payload to a client component as a prop. - Client component: spread the derived options into a
ConvexQueryNode (or
this.query(...)on aConvexNode). The node renders the server-fetched data immediately — no pending flash — and seamlessly switches to live values once the websocket subscription emits.
The payload's args become the node's initial args so the live subscription runs the exact query the server preloaded.
Example#
// app/tasks/page.tsx (server component)
const preloaded = await preloadQuery(api.tasks.list, { listId });
return <TasksClient preloaded={preloaded} />;
// TasksClient.tsx ("use client")
const tasks = useNode(
() =>
new ConvexQueryNode(client, api.tasks.list, {
...preloadedQueryOptions(preloaded),
})
);