renderToStaticNodeStream

renderToStaticNodeStream renderiza uma árvore React não interativa para um Node.js Readable Stream.

const stream = renderToStaticNodeStream(reactNode, options?)

Reference

renderToStaticNodeStream(reactNode, options?)

No servidor, chame renderToStaticNodeStream para obter um Node.js Readable Stream.

import { renderToStaticNodeStream } from 'react-dom/server';

const stream = renderToStaticNodeStream(<Page />);
stream.pipe(response);

Veja mais exemplos abaixo.

O stream produzirá uma saída HTML não interativa de seus componentes React.

Parameters

  • reactNode: Um nó React que você deseja renderizar em HTML. Por exemplo, um elemento JSX como <Page />.

  • opcional options: Um objeto para a renderização do servidor.

    • opcional identifierPrefix: Um prefixo de string que o React usa para IDs gerados por useId. Útil para evitar conflitos ao usar múltiplas raízes na mesma página.

Returns

Um Node.js Readable Stream que produz uma string HTML. O HTML resultante não pode ser hidratado no cliente.

Caveats

  • A saída de renderToStaticNodeStream não pode ser hidratada.

  • Este método aguardará que todas as Suspense boundaries sejam concluídas antes de retornar qualquer saída.

  • A partir do React 18, este método armazena em buffer toda a sua saída, portanto, na verdade, não fornece nenhum benefício de streaming.

  • O stream retornado é um stream de bytes codificado em utf-8. Se você precisar de um stream em outra codificação, dê uma olhada em um projeto como iconv-lite, que fornece streams de transformação para transcodificar texto.


Usage

Rendering a React tree as static HTML to a Node.js Readable Stream

Chame renderToStaticNodeStream para obter um Node.js Readable Stream que você pode enviar para a resposta do seu servidor:

import { renderToStaticNodeStream } from 'react-dom/server';

// A sintaxe do manipulador de rota depende do seu framework de backend
app.use('/', (request, response) => {
const stream = renderToStaticNodeStream(<Page />);
stream.pipe(response);
});

O stream produzirá a saída HTML inicial não interativa de seus componentes React.

Pitfall

Este método renderiza HTML não interativo que não pode ser hidratado. Isso é útil se você quiser usar o React como um simples gerador de páginas estáticas, ou se estiver renderizando conteúdo completamente estático como e-mails.

Aplicativos interativos devem usar renderToPipeableStream no servidor e hydrateRoot no cliente.