React 渲染机制
在 render 过程中, React 将新调用的 render 函数返回的树与旧版本的树进行比较,这一步是决定如何更新 DOM 的必要步骤,然后进行 diff 比较,更新 DOM 树
render 的执行时机主要分成了两部分:
- 类组件调用 setState 修改状态
- 函数组件通过
useState hook修改状态 - 类组件重新渲染
- 函数组件重新渲染
shouldComponentUpdate
通过 shouldComponentUpdate 生命周期函数来比对 state 和 props ,确定是否要重新渲染
默认情况下返回 true 表示重新渲染,如果不希望组件重新渲染,返回 false 即可
PureComponent
memo
React.memo 用来缓存组件的渲染,避免不必要的更新,其实也是一个高阶组件,与 PureComponent 十分类似。但不同的是, React.memo 只能用于函数组件