
patchVnode 函数(第一版)
对比同一虚拟节点(精细化比较)
不处理新旧虚拟节点都有 children 的情况
1  | import createElement from "./createElement";  | 
diff算法的子节点更新策略
四种命中查找:
- ①新前与旧前
 - ②新后与旧后
 - ③新后与旧前(此种发生了,涉及移动节点,那么旧前所指向的节点要移动到旧后之后)
 - ④新前与旧后(此种发生了,涉及移动节点,那么旧后所指向的节点要移动到旧前之前)
 
命中一种就不再进行命中判断了,如果都没有命中,就需要用循环来寻找了。移动到oldStartIdx之前。
updateChildren 函数
处理新旧虚拟节点都有 children 的情况
1  | import patchVnode from "./patchVnode";  | 
patchVnode 函数(第二版)
1  | import updateChildren from "./updateChildren";  | 
patch 函数(第二版)
1  | import patchVnode from "./patchVnode";  |