React diff 分为三种:
- tree diff
- component diff
- element diff
具体的流程为:
- 把树形构造依照层级合成,只比拟同级元素
- 给列表构造的每个单元增加惟一的 key 属性,不便比拟。
- React只会匹配雷同class的component(这外面的class指的是组件的名字)
- 合并操作,调用component的setState办法的时候,React将其标记为dirty。到每一个事件循环完结,React查看所有标记dirty的component从新绘制
- 抉择性子树渲染。开发人员能够重写shouldComponentUpdate进步diff的性能
相应的链接:React diff知乎