一个 DataRouter,它可能不会导航到任何其他 Location。这在服务器上很有用,因为服务器没有有状态的 UI。
export async function handleRequest(request: Request) {
let { query, dataRoutes } = createStaticHandler(routes);
let context = await query(request));
if (context instanceof Response) {
return context;
}
let router = createStaticRouter(dataRoutes, context);
return new Response(
ReactDOMServer.renderToString(<StaticRouterProvider ... />),
{ headers: { "Content-Type": "text/html" } }
);
}
function StaticRouterProvider({
context,
router,
hydrate = true,
nonce,
}: StaticRouterProviderProps)
从 StaticHandler 的 query 返回的 StaticHandlerContext。
是否在客户端上进行 hydrate(水合)路由器(默认为 true)
用于 hydration(水合) <script> 标签的 nonce。
来自 createStaticRouter 的静态 DataRouter