vue-diff
2018-06-28 10:05:17 9 举报
vue-diff
作者其他创作
大纲/内容
oldEndIdx
span.s1
div.d1
a.a1
div.wrap
newEndIdx
步骤一
oldStartVnode(span.s1)== newEndVnode(span.s1)移动oldStartVnode对应的 dom 到父元素的最后
b.b1
newTree
oldStartIdx
newStartIdx||oldStartIdx
oldStartVnode(p.p1)== newStartVnode(p.p1)不作处理
p.p1
oldEndVnode(div.d1)== newStartVnode(div.d1)移动oldEndVnode对应的dom到父元素的头部
步骤四
由于 newStartVnode(a.a1)设置了key=a1,所以oldStartVnode(div.d1)!= newStartVnode(div.d1)。因此,删除oldStartVnode(a.a1) 对应的 dom,并且创建 newStartVnode(a.a1)对应的 dom。此时, newStartIdx oldEndIdx,退出循环,因为 oldEndIdx = oldStartIdx,需要删除这中间的 vnode(b.b1)对应的 dom 。
步骤二
newStartIdx||newEndIdx+1
oldTree
(key = a1)
newStartIdx
oldStartIdx||oldEndIdx
步骤三
0 条评论
下一页