prerender() / resume() (react-dom/static)
React 🔴 SeniorDéfinition
prerender() (React 19, 5 décembre 2024) génère du HTML statique en attendant la résolution de toutes les frontières Suspense, et retourne { prélude, postponed }. Depuis React 19.2 (1er octobre 2025), résume() reprend un pré-rendu interrompu (via AbortSignal) pour terminer le rendu à la requête, et resumeAndPrerender() reprend vers du statique : c'est la brique React du Partial Prerendering. Ces API fonctionnent en Web Streams, y compris sous Node.js depuis 19.2.
Analogie
Une pâte à pizza précuite : la base est prête à l'avance, on n'ajoute la garniture fraîche qu'à la commande.
Exemple de code
import { prerender } from 'react-dom/static';
import { resume } from 'react-dom/server';
// Au build : coquille statique, arrêt après 10 s
const ctrl = new AbortController();
setTimeout(() => ctrl.abort(), 10_000);
const { prelude, postponed } = await prerender(<App />, {
signal: ctrl.signal, bootstrapScripts: ['/main.js'],
});
await saveToCDN(prelude, postponed);
// À la requête : on reprend là où le pré-rendu s'est arrêté
const stream = await resume(<App />, postponed);
Cas d'usage
SSG classique (prerender seul) ou PPR maison hors Next.js ; comprendre ce que Next.js Cache Components fait sous le capot.
Anti-pattern
Termes liés
Sources
Fiche mise à jour le 2026-09-27