resumeToPipeableStream

resumeToPipeableStream transmite uma árvore React pré-renderizada para um Stream do Node.js “pipeable”.

const {pipe, abort} = await resumeToPipeableStream(reactNode, postponedState, options?)

Note

Esta API é específica para o Node.js. Ambientes com Web Streams, como Deno e runtimes de edge modernos, devem usar resume em vez disso.


Referência

resumeToPipeableStream(node, postponed, options?)

Chame resume para retomar a renderização de uma árvore React pré-renderizada como HTML em um Stream do Node.js.

import { resume } from 'react-dom/server';
import {getPostponedState} from './storage';

async function handler(request, response) {
const postponed = await getPostponedState(request);
const {pipe} = resumeToPipeableStream(<App />, postponed, {
onShellReady: () => {
pipe(response);
}
});
}

Veja mais exemplos abaixo.

Parâmetros

  • reactNode: O nó React com o qual você chamou prerender. Por exemplo, um elemento JSX como <App />. Espera-se que ele represente o documento inteiro, então o componente App deve renderizar a tag <html>.
  • postponedState: O objeto opaco postpone retornado por uma API de prerender, carregado de onde quer que você o tenha armazenado (por exemplo, redis, um arquivo ou S3).
  • opcional options: Um objeto com opções de streaming.
    • opcional nonce: Uma string nonce para permitir scripts para script-src Content-Security-Policy.
    • opcional signal: Um sinal abortar que permite abortar a renderização do servidor e renderizar o restante no cliente.
    • opcional onError: Um callback que é acionado sempre que ocorre um erro no servidor, seja recuperável ou não. Por padrão, isso apenas chama console.error. Se você o substituir para registrar relatórios de falha, certifique-se de ainda chamar console.error.
    • opcional onShellReady: Um callback que é acionado logo após a shell ter terminado. Você pode chamar pipe aqui para começar a transmitir. O React transmitirá o conteúdo adicional após a shell, juntamente com as tags <script> inline que substituem os fallbacks de carregamento HTML pelo conteúdo.
    • opcional onShellError: Um callback que é acionado se ocorrer um erro ao renderizar a shell. Ele recebe o erro como argumento. Nenhum byte foi emitido do stream ainda, e nem onShellReady nem onAllReady serão chamados, então você pode gerar uma shell HTML de fallback ou usar o prelúdio.

Retorna

resume retorna um objeto com dois métodos:

Ressalvas

  • resumeToPipeableStream não aceita opções para bootstrapScripts, bootstrapScriptContent ou bootstrapModules. Em vez disso, você precisa passar essas opções para a chamada prerender que gera o postponedState. Você também pode injetar conteúdo bootstrap no stream gravável manualmente.
  • resumeToPipeableStream não aceita identifierPrefix, pois o prefixo precisa ser o mesmo em prerender e resumeToPipeableStream.
  • Como nonce não pode ser fornecido ao prerender, você só deve fornecer nonce a resumeToPipeableStream se não estiver fornecendo scripts ao prerender.
  • resumeToPipeableStream re-renderiza da raiz até encontrar um componente que não foi totalmente pré-renderizado. Apenas Componentes totalmente pré-renderizados (o Componente e seus filhos terminaram de pré-renderizar) são pulados inteiramente.

Uso

Leitura adicional

O resumo se comporta como renderToReadableStream. Para mais exemplos, confira a seção de uso de renderToReadableStream. A seção de uso de prerender inclui exemplos de como usar prerenderToNodeStream especificamente.