,让你可以有一个清晰的认知之余也会让你在今后遇到这种情况可以坦然自若,应付自如,游刃有余:
----
相关知识点:
虚拟DOM(Virtual DOM):
什么是虚拟dom
为什么要使用虚拟dom
虚拟...dom性能消耗大,减少操作dom的范围可以提升性能)
灵魂发问:使用了虚拟DOM就一定会比直接渲染真实DOM快吗?...函数源码部分涉及一个函数重载的概念,简单说明一下:
参数个数或参数类型不同的函数()
JavaScript中没有重载的概念
TypeScript中有重载,不过重载的实现还是通过代码调整参数
重载这个概念个参数相关...相同)
如果不是相同节点,删除之前的内容,重新渲染
如果是相同节点,再判断新的VNode是否有text,如果有并且和oldVnode的text不同直接更新文本内容(patchVnode)
如果新的VNode...[newStartIdx]对比,执行sameVnode(key和sel相同)判断是否相同节点)
执行patchVnode找出两者之间的差异,更新视图,如没有差异则什么都不操作,结束一次循环
oldCh[