unstable_matchRSCServerRequest



この API は実験的であり、マイナー/パッチリリースで破壊的な変更が行われる可能性があります。注意して使用し、関連する変更についてはリリースノートに非常に注意してください。

概要

参照ドキュメント ↗

与えられた routesRequest にマッチさせ、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/serverdecodeAction 関数で、サーバー action のロードを担当します。

opts.decodeFormState

React の useActionState を使用して、プログレッシブに強化可能なフォームのフォーム state をデコードする関数です。react-server-dom-xyz/serverdecodeFormState を使用します。

opts.decodeReply

react-server-dom-xyz/serverdecodeReply 関数で、サーバー関数の引数をデコードし、router による呼び出しのために実装にバインドするために使用されます。

opts.generateResponse

あなたの renderToReadableStream を使用して、unstable_RSCPayload をエンコードする Response を生成する関数です。

opts.loadServerAction

react-server-dom-xyz/serverloadServerAction 関数で、ID によってサーバー action をロードするために使用されます。

opts.onError

リクエスト処理中に発生したエラーで呼び出されるオプションのエラーハンドラです。

opts.request

マッチング対象となる Request です。

opts.requestContext

リクエストごとに作成されるべき RouterContextProvider のインスタンスで、actionloader、および middleware に渡されます。

opts.routes

あなたの route 定義です。

戻り値

ハイドレーションのための RSC データを含む Response です。