基于以下事实:
- 父组件更新默认触发所有子组件更新(shouldComponentUpdate默认返回true)
- 列表类型的组件默认更新方式非常复杂
性能优化关键在:
- shouldComponentUpdate 阶段判断,如果属性及状态与上一次相同,这个时候很明显UI不会变化,也不需要执行后续生成DOM,DOM Diff的过程了,可以提高性能。
- DOM Diff 阶段优化,提高Diff的效率
解决方案:
- 子组件执行
shouldComponentUpdate
方法,自行决定是否更新 - 给列表中的组件添加key属性