一个 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