resumeAndPrerenderToNodeStream
resumeAndPrerenderToNodeStream continua uma árvore pré-renderizada do React para uma string HTML estática usando um Node.js Stream..
const {prelude, postponed} = await resumeAndPrerenderToNodeStream(reactNode, postponedState, options?)Referência
resumeAndPrerenderToNodeStream(reactNode, postponedState, options?)
Chame resumeAndPrerenderToNodeStream para continuar uma árvore pré-renderizada do React para uma string HTML estática.
import { resumeAndPrerenderToNodeStream } from 'react-dom/static';
import { getPostponedState } from 'storage';
async function handler(request, writable) {
const postponedState = getPostponedState(request);
const { prelude } = await resumeAndPrerenderToNodeStream(<App />, JSON.parse(postponedState));
prelude.pipe(writable);
}No cliente, chame hydrateRoot para tornar o HTML gerado pelo servidor interativo.
Parâmetros
reactNode: O nó React com o qual você chamouprerender(ou umresumeAndPrerenderToNodeStreamanterior). 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 objetopostponeopaco 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
signal: Um sinal de 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
Retorna
resumeAndPrerenderToNodeStream retorna uma Promise:
- Se a renderização for bem-sucedida, a Promise será resolvida para um objeto contendo:
prelude: um Web Stream de HTML. Você pode usar este stream para enviar uma resposta em pedaços, ou pode ler o stream inteiro em uma string.postponed: um objeto opaco e serializável em JSON que pode ser passado pararesumeToNodeStreamouresumeAndPrerenderToNodeStreamseresumeAndPrerenderToNodeStreamfor abortado.
- Se a renderização falhar, a Promise será rejeitada. Use isso para gerar um shell de fallback.
Ressalvas
nonce não é uma opção disponível ao pré-renderizar. Nonces devem ser únicos por solicitação e se você usar nonces para proteger seu aplicativo com CSP seria inadequado e inseguro incluir o valor do nonce na pré-renderização em si.
Uso
Leitura adicional
resumeAndPrerenderToNodeStream se comporta de forma semelhante a prerender, mas pode ser usado para continuar um processo de pré-renderização iniciado anteriormente que foi abortado.
Para mais informações sobre como retomar uma árvore pré-renderizada, veja a documentação de resume.