14 hours ago
- `react` 包只提供定义组件的API,而实际实现(如DOM更新)则由像 `react-dom` 这样的渲染器处理。
- `React.Component` 中的 `setState` 并不直接更新DOM;它委托给组件实例上设置的渲染器特定的 `updater` 字段。
- 像 `useState` 这样的 Hook 使用类似的模式,通过一个 `dispatcher` 对象,该对象在渲染组件之前由渲染器设置。
- 这种分离使得React能够在不同平台(DOM、React Native等)上工作而无需更改组件代码,并且它是一种依赖注入的形式。