For AI agents: the complete documentation index is available at /zh/llms.txt, the full documentation bundle is available at /zh/llms-full.txt, and this page is available as Markdown at /zh/apis/app/runtime/ssr/renderString.md.
  • 简体中文
  • renderString

    用于 React String SSR 渲染出字符串,配合 createRequestHandler 使用

    使用

    src/entry.server.tsx
    import {
      renderString,
      createRequestHandler,
      type HandleRequest,
    } from '@modern-js/runtime/ssr/server';
    
    const handleRequest: HandleRequest = async (request, ServerRoot, options) => {
      const body = await renderString(request, <ServerRoot />, options);
    
      return new Response(body, {
        headers: {
          'content-type': 'text/html; charset=utf-8',
        },
      });
    };
    
    export default createRequestHandler(handleRequest);

    函数签名

    export type RenderString = (
      request: Request,
      serverRoot: React.ReactElement,
      optinos: RenderOptions,
    ) => Promise<string>;

    示例

    src/entry.server.tsx
    import {
      renderString,
      createRequestHandler,
      type HandleRequest,
    } from '@modern-js/runtime/ssr/server';
    
    const handleRequest: HandleRequest = async (request, ServerRoot, options) => {
      // do something before render
      const body = await renderString(request, <ServerRoot />, options);
    
      const newBody = body + '<div>Byte-Dance</div>';
    
      return new Response(newBody, {
        headers: {
          'content-type': 'text/html; charset=utf-8',
        },
      });
    };
    
    export default createRequestHandler(handleRequest);