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 条评论
 下一页
  
   
   
   
  
  
  
  
  
  
  
  
 