我是跳着看的,对patch的diff算法比较好奇,所以先看了组件更新这块的逻辑,这块真的觉得有点水哎
个人感觉就是按代码讲了一下,但是关键的点还没讲到,比如updateChildren:
1. 为什么要对比oldStartIndex,oldEndIndex,new。。。这四个。
- 答:这是一种优化策略,如果直接上来遍历的话,会浪费很多性能,因为大多数情况下,我们只是组件中的某个元素发生了变化,而不是全部。
2. 当对比不成功如何处理,这里面又涉及了我们常见的要给循环里面的元素设置key的问题。
等等等