DMQ / mvvm

剖析vue实现原理,自己动手实现mvvm
5.21k stars 1.26k forks source link

关于node2Fragment函数中的节点遍历 #37

Closed AricZhu closed 5 years ago

AricZhu commented 5 years ago

源代码如下: node2Fragment: function (el) { var fragment = document.createDocumentFragment(), child; // 将原生节点拷贝到fragment while (child = el.firstChild) { fragment.appendChild(child); } } 上面代码中,el每次循环将第一个子节点赋值给child时,el不需要删除对应的子节点吗?

notbucai commented 5 years ago

节点只能有一个父亲

AricZhu commented 5 years ago

我理解的是这个循环是将el节点下面的所有子节点拷贝到fragment节点下面 但是while(child=el.firstChild){ ... }这个循环不会导致死循环吗?

notbucai commented 5 years ago

不会 这不算拷贝,而是挪过去了

AricZhu commented 5 years ago

嗯嗯,我明白了。刚试了下还真是这样的。谢谢啦