dillon1000/react

Commit

Root API should clear non-empty roots before mounting (#18730)

* Root API should clear non-empty roots before mounting

Legacy render-into-subtree API removes children from a container before rendering into it. The root API did not do this previously, but just left the children around in the document.

This commit adds a new FiberRoot flag to clear a container's contents before mounting. This is done during the commit phase, to avoid multiple, observable mutations.
Browse files
Changed paths13 files
First-parent comparison
M packages/react-art/src/ReactARTHostConfig.js ModifiedM packages/react-dom/src/__tests__/ReactDOMRoot-test.js ModifiedM packages/react-dom/src/client/ReactDOMHostConfig.js ModifiedM packages/react-native-renderer/src/ReactNativeHostConfig.js ModifiedM packages/react-noop-renderer/src/createReactNoop.js ModifiedM packages/react-reconciler/src/ReactFiberCommitWork.new.js ModifiedM packages/react-reconciler/src/ReactFiberCommitWork.old.js ModifiedM packages/react-reconciler/src/ReactFiberCompleteWork.new.js ModifiedM packages/react-reconciler/src/ReactFiberCompleteWork.old.js ModifiedM packages/react-reconciler/src/ReactFiberHostConfigWithNoMutation.js ModifiedM packages/react-reconciler/src/__tests__/ReactFiberHostContext-test.internal.js ModifiedM packages/react-reconciler/src/forks/ReactFiberHostConfig.custom.js ModifiedM packages/react-test-renderer/src/ReactTestHostConfig.js Modified
Patch

Files changed

Rendering syntax-highlighted changes…