resumeAndPrerender
resumeAndPrerender continua uma árvore React pré-renderizada para uma string HTML estática usando um Web Stream.
const { prelude,postpone } = await resumeAndPrerender(reactNode, postponedState, options?)Referência
resumeAndPrerender(reactNode, postponedState, options?)
Chame resumeAndPrerender para continuar uma árvore React pré-renderizada para uma string HTML estática.
import { resumeAndPrerender } from 'react-dom/static';
import { getPostponedState } from 'storage';
async function handler(request, response) {
const postponedState = getPostponedState(request);
const { prelude } = await resumeAndPrerender(<App />, postponedState, {
bootstrapScripts: ['/main.js']
});
return new Response(prelude, {
headers: { 'content-type': 'text/html' },
});
}No cliente, chame hydrateRoot para tornar o HTML gerado pelo servidor interativo.
Parâmetros
reactNode: O nó React que você chamouprerender(ou umresumeAndPrerenderanterior) com. 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 de uma API de pré-renderização, 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: Uma função de callback que é acionada 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
prerender 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 pararesumeouresumeAndPrerenderseprerenderfor 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 sua aplicação com CSP seria inadequado e inseguro incluir o valor do nonce na própria pré-renderização.
Uso
Leitura adicional
resumeAndPrerender 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 continuar uma árvore pré-renderizada, veja a documentação do resume.