unstable_matchRSCServerRequest
概要
与えられた routes を Request にマッチさせ、RSC 対応のクライアント router が利用するための unstable_RSCPayload をエンコードした RSC Response を返します。
import {
createTemporaryReferenceSet,
decodeAction,
decodeReply,
loadServerAction,
renderToReadableStream,
} from "@vitejs/plugin-rsc/rsc";
import { unstable_matchRSCServerRequest as matchRSCServerRequest } from "react-router";
matchRSCServerRequest({
createTemporaryReferenceSet,
decodeAction,
decodeFormState,
decodeReply,
loadServerAction,
request,
routes: routes(),
generateResponse(match) {
return new Response(
renderToReadableStream(match.payload),
{
status: match.statusCode,
headers: match.headers,
}
);
},
});シグネチャ
async function matchRSCServerRequest({
createTemporaryReferenceSet,
basename,
decodeReply,
requestContext,
loadServerAction,
decodeAction,
decodeFormState,
onError,
request,
routes,
generateResponse,
}: {
createTemporaryReferenceSet: () => unknown;
basename?: string;
decodeReply?: DecodeReplyFunction;
decodeAction?: DecodeActionFunction;
decodeFormState?: DecodeFormStateFunction;
requestContext?: RouterContextProvider;
loadServerAction?: LoadServerActionFunction;
onError?: (error: unknown) => void;
request: Request;
routes: RSCRouteConfigEntry[];
generateResponse: (
match: RSCMatch,
{
onError,
temporaryReferences,
}: {
onError(error: unknown): string | undefined;
temporaryReferences: unknown;
},
) => Response;
}): Promise<Response>パラメータ
opts.basename
リクエストのマッチング時に使用する basename です。
opts.createTemporaryReferenceSet
リクエストのための一時参照セットを返す関数で、RSC ストリーム内の一時参照を追跡するために使用されます。
opts.decodeAction
react-server-dom-xyz/server の decodeAction 関数で、サーバー action のロードを担当します。
opts.decodeFormState
React の useActionState を使用して、プログレッシブに強化可能なフォームのフォーム state をデコードする関数です。react-server-dom-xyz/server の decodeFormState を使用します。
opts.decodeReply
react-server-dom-xyz/server の decodeReply 関数で、サーバー関数の引数をデコードし、router による呼び出しのために実装にバインドするために使用されます。
opts.generateResponse
あなたの renderToReadableStream を使用して、unstable_RSCPayload をエンコードする Response を生成する関数です。
opts.loadServerAction
react-server-dom-xyz/server の loadServerAction 関数で、ID によってサーバー action をロードするために使用されます。
opts.onError
リクエスト処理中に発生したエラーで呼び出されるオプションのエラーハンドラです。
opts.request
マッチング対象となる Request です。
opts.requestContext
リクエストごとに作成されるべき RouterContextProvider のインスタンスで、action、loader、および middleware に渡されます。
opts.routes
あなたの route 定義です。