ClientLoaderFunctionArgs
Client loader arguments with access to the server loader.
Compatibility
ReactAvailable in this renderer's browser integration.
React SSRAvailable to this renderer's SSR integration; browser event handlers run after hydration.
PreactAvailable in this renderer's browser integration.
Preact SSRAvailable to this renderer's SSR integration; browser event handlers run after hydration.
Import from @kasperrt/smolter/react @kasperrt/smolter/preact
Signature
interface ClientLoaderFunctionArgs extends LoaderFunctionArgs {
serverLoader: <T = unknown>() => Promise<T>;
}Contract
Extends LoaderFunctionArgs with serverLoader<T>(): Promise<T>. The application transport supplies this callback; invoking it requests the registered server loader.
import type { ClientLoaderFunctionArgs } from "@kasperrt/smolter/preact";
interface TaskData {
title: string;
}
export async function clientLoader({ serverLoader }: ClientLoaderFunctionArgs) {
const task = await serverLoader<TaskData>();
return { ...task, source: "server" };
}Usage and limits
A client loader can return locally sourced data without calling serverLoader. The generic declares the server result contract; it does not validate JSON at runtime. A bare createDataRouter does not install a server transport callback.
Fields
serverLoader
serverLoader: <T = unknown>() => Promise<T>;