React更新和渲染流程

71 阅读1分钟
  1. 当组件的 state 或者 props 发生变化时,React 会将新的 props 和 state 比较之前的,根据比较结果决定是否进行更新。
  2. 如果 shouldComponentUpdatePureComponent 或 React.memo 表示不需要更新,React 将不会进行更新。
  3. 如果需要更新,React 会调用 render 方法以及相关的生命周期方法或 Hooks,这个过程会创建一个虚拟 DOM 树。
  4. React 之后会对比新的虚拟 DOM 树与上一次更新时的虚拟 DOM 树,通过 DOM diffing 算法判断在哪进行实际的 DOM 更新。
  5. 应用必要的 DOM 更新到实际的 DOM 树上,如果有必要,调用 getSnapshotBeforeUpdatecomponentDidUpdate 方法。

这个过程保持了 React 组件的高效和可预测性,同时提供了生命周期的方法和 Hooks,使开发者能够插入自定义行为或响应组件的生命周期事件。