#挑战每日一条沸点#
Day1 Vue源码阅读
patchUnkeyedChildren()方法(v-for没有key的算法)的操作思路如下:
> 先对比旧VNodes列表和新VNodes列表的长度,取小的长度进行遍历(取大的可能会造成越界),依次对比节点信息是否相同,相同则保留不做处理,不相同则patch更新。遍历后,如果旧的节点数大于新的节点数则移除剩余的节点,否则则创建新的节点(VNode遍历短的,对比后保留长的,因为只有长的列表才有完整的源数据,看保留的是哪个长列表(新VNodes or 旧VNodes),做新增/删除节点操作)