DMQ / mvvm

剖析vue实现原理,自己动手实现mvvm

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

将原生节点拷贝到fragment的代码错误

saifeiLee opened this issue · comments

// 将原生节点拷贝到fragment
        while (child = el.firstChild) {
            fragment.appendChild(child);
        }

这里是个无限循环,或许可以改为:

for (child = el.firstChild; child != null; child = child.nextSibling) {
      fragment.appendChild(child);
    }

appendChild方法实际上会把节点添加到目标Node的子节点里面(在这里是fragment),
如果你的节点在HTML页面已经渲染了其实它会移除并添加到目标Node,因此你这里才可以得以循,没必要进行修改.

commented

感谢 @H246802 的解答,正解!