将传入的 Request
路由到 RSC 服务器,并为数据/资源请求适当地代理服务器响应,或为文档请求渲染为 HTML。
import { createFromReadableStream } from "@vitejs/plugin-rsc/ssr";
import * as ReactDomServer from "react-dom/server.edge";
import {
unstable_RSCStaticRouter as RSCStaticRouter,
unstable_routeRSCServerRequest as routeRSCServerRequest,
} from "react-router";
routeRSCServerRequest({
request,
fetchServer,
createFromReadableStream,
async renderHTML(getPayload) {
const payload = await getPayload();
return await renderHTMLToReadableStream(
<RSCStaticRouter getPayload={getPayload} />,
{
bootstrapScriptContent,
formState: await getFormState(payload),
}
);
},
});
async function routeRSCServerRequest({
request,
fetchServer,
createFromReadableStream,
renderHTML,
hydrate = true,
}: {
request: Request;
fetchServer: (request: Request) => Promise<Response>;
createFromReadableStream: SSRCreateFromReadableStreamFunction;
renderHTML: (
getPayload: () => Promise<RSCPayload>,
) => ReadableStream<Uint8Array> | Promise<ReadableStream<Uint8Array>>;
hydrate?: boolean;
}): Promise<Response>
你的 react-server-dom-xyz/client
的 createFromReadableStream
函数,用于解码来自服务器的有效负载。
一个将 Request
转发到 RSC 处理程序并返回一个包含序列化 unstable_RSCPayload
的 Promise<Response>
的函数。
是否使用 RSC 有效负载来水合服务器响应。默认为 true
。
一个将 unstable_RSCPayload
渲染为 HTML 的函数,通常使用 <RSCStaticRouter>
。
要路由的请求。