dillon1000/react

Commit

Schedule prerender after something suspends (#30800)

Adds the concept of a "prerender". These special renders are spawned
whenever something suspends (and we're not already prerendering).

The purpose is to move speculative rendering work into a separate phase
that does not block the UI from updating. For example, during a
transition, if something suspends, we should not speculatively prerender
siblings that will be replaced by a fallback in the UI until *after* the
fallback has been shown to the user.
Browse files
Changed paths24 files
First-parent comparison
M packages/react-cache/src/__tests__/ReactCacheOld-test.internal.js ModifiedM packages/react-dom/src/__tests__/ReactDOMFiberAsync-test.js ModifiedM packages/react-dom/src/__tests__/ReactDOMForm-test.js ModifiedM packages/react-reconciler/src/ReactFiberLane.js ModifiedM packages/react-reconciler/src/ReactFiberRoot.js ModifiedM packages/react-reconciler/src/ReactFiberWorkLoop.js ModifiedM packages/react-reconciler/src/ReactInternalTypes.js ModifiedM packages/react-reconciler/src/__tests__/ActivitySuspense-test.js ModifiedM packages/react-reconciler/src/__tests__/ReactActWarnings-test.js ModifiedM packages/react-reconciler/src/__tests__/ReactAsyncActions-test.js ModifiedM packages/react-reconciler/src/__tests__/ReactCPUSuspense-test.js ModifiedM packages/react-reconciler/src/__tests__/ReactConcurrentErrorRecovery-test.js ModifiedM packages/react-reconciler/src/__tests__/ReactDeferredValue-test.js ModifiedM packages/react-reconciler/src/__tests__/ReactExpiration-test.js ModifiedM packages/react-reconciler/src/__tests__/ReactHooksWithNoopRenderer-test.js ModifiedM packages/react-reconciler/src/__tests__/ReactLazy-test.internal.js ModifiedM packages/react-reconciler/src/__tests__/ReactSuspense-test.internal.js ModifiedM packages/react-reconciler/src/__tests__/ReactSuspenseEffectsSemantics-test.js ModifiedM packages/react-reconciler/src/__tests__/ReactSuspenseList-test.js ModifiedM packages/react-reconciler/src/__tests__/ReactSuspenseWithNoopRenderer-test.js ModifiedM packages/react-reconciler/src/__tests__/ReactTransition-test.js ModifiedM packages/react-reconciler/src/__tests__/ReactUse-test.js ModifiedM packages/react-reconciler/src/__tests__/useMemoCache-test.js ModifiedM packages/react-reconciler/src/__tests__/useSyncExternalStore-test.js Modified
Patch

Files changed

Rendering syntax-highlighted changes…