数据发生变化时,vue是如何更新节点的?


前言:真实DOM的渲染会引起整个DOM树的重排重绘,会造成非常大的开销。因此,vue采用了Virtual DOM(虚拟DOM)。

  1. 虚拟DOM是将真实DOM数据抽取出来,以对象的形式模拟树形结构。
  2. 在更新节点的过程中采用了diff算法
    diff的过程就是调用patch函数,比较新旧节点,一边比对一边给真实DOM打补丁。

补充知识:

1.diff的比较方式
    在采用diff算法比较新旧节点时,比较只会在同层级进行,不会跨层级比较。
    2.diff算法在执行时有三个维度:Tree DIFF、Component DIFF、Element DIFF。

相关推荐