dillon1000/react
Commit
Browse files Expose prerender() for SSG in stable (#31298)
When we added `renderToReadableStream` we added the `allReady` helper to make it easier to do SSG rendering but it's kind of awkward to wire up that way. Since we're also discouraging `renderToString` in React 19 the cliff is kind of awkward. ([As noted by Docusaurus.](https://github.com/facebook/react/pull/24752#issuecomment-2178309299)) The idea of the `react-dom/static` `prerender` API was that this would be the replacement for SSG rendering. Awkwardly this entry point actually already exists in stable but it has only `undefined` exports. Since then we've also added other useful heuristics into the `prerender` branch that makes this really the favored and easiest to use API for the prerender (SSG/ISR) use case. `prerender` is also used for Partial Prerendering but that part is still experimental. However, we can expose only the `prerender` API on `react-dom/static` without it returning the `postponeState`. Instead the stream is on `prelude`. The naming is a bit awkward if you don't consider resuming but it's the same thing. It's really just `renderToReadable` stream with automatic `allReady` and better heuristics for prerendering.
Changed paths8 files
First-parent comparisonpackages/react-dom/src/__tests__/ReactDOMFizzStatic-test.js ModifiedM packages/react-dom/src/__tests__/ReactDOMFizzStaticBrowser-test.js ModifiedM packages/react-dom/src/server/ReactDOMFizzStaticBrowser.js ModifiedM packages/react-dom/src/server/ReactDOMFizzStaticEdge.js ModifiedM packages/react-dom/src/server/ReactDOMFizzStaticNode.js ModifiedM packages/react-dom/src/server/react-dom-server.browser.stable.js ModifiedM packages/react-dom/src/server/react-dom-server.edge.stable.js ModifiedM packages/react-dom/src/server/react-dom-server.node.stable.js ModifiedPatch
Files changed
Rendering syntax-highlighted changes…