当一个组件的 props 或 state 改变,React 会构造一个新的虚拟 DOM 和旧的进行对比来决定真实 DOM 更新的必要性,只有在它们不相等的时候,React 才会使用尽量少的改动更新 DOM。
React 会非常频繁的调用shouldComponentUpdate,所以要确保shouldComponentUpdate的执行速度够快。shouldComponentUpdate是在react创造虚拟dom之前进行判断,所以从根源上提升性能,只有在shouldComponentUpdate返回true之后,react才创造虚拟dom,然后对比组件树,对变化的组件才进行渲染,没变化的组件只进行对比,不更新。