resumeToPipeableStream
resumeToPipeableStream transmite uma árvore React pré-renderizada para um Stream do Node.js “pipeable”.
const {pipe, abort} = await resumeToPipeableStream(reactNode, postponedState, options?)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);
}
});
}Parâmetros
reactNode: O nó React com o qual você chamouprerender. Por exemplo, um elemento JSX como<App />. Espera-se que ele represente o documento inteiro, então o componenteAppdeve renderizar a tag<html>.postponedState: O objeto opacopostponeretornado 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 stringnoncepara permitir scripts parascript-srcContent-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 chamaconsole.error. Se você o substituir para registrar relatórios de falha, certifique-se de ainda chamarconsole.error. - opcional
onShellReady: Um callback que é acionado logo após a shell ter terminado. Você pode chamarpipeaqui 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 nemonShellReadynemonAllReadyserão chamados, então você pode gerar uma shell HTML de fallback ou usar o prelúdio.
- opcional
Retorna
resume retorna um objeto com dois métodos:
pipegera o HTML no Stream do Node.js Gravável fornecido. ChamepipeemonShellReadyse quiser habilitar o streaming, ou emonAllReadypara crawlers e geração estática.abortpermite abortar a renderização do servidor e renderizar o restante no cliente.
Ressalvas
resumeToPipeableStreamnão aceita opções parabootstrapScripts,bootstrapScriptContentoubootstrapModules. Em vez disso, você precisa passar essas opções para a chamadaprerenderque gera opostponedState. Você também pode injetar conteúdo bootstrap no stream gravável manualmente.resumeToPipeableStreamnão aceitaidentifierPrefix, pois o prefixo precisa ser o mesmo emprerendereresumeToPipeableStream.- Como
noncenão pode ser fornecido ao prerender, você só deve fornecernoncearesumeToPipeableStreamse não estiver fornecendo scripts ao prerender. resumeToPipeableStreamre-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.