我们一起来读书吧 关注:156贴子:3,309
  • 0回复贴,共1

《深入浅出vuejs》10

只看楼主收藏回复

优化器的作用:在AST中找出静态子树并打上标记。
静态子树:在AST中永远都不会发生变化的节点。
静态节点:永远都不会发生变化的节点,在ast中表现是static属性为true。
静态根节点:所有子节点都是静态节点,并且父级是动态节点,在ast中表现是staticRoot为true。
优化器的好处:1.每次重新渲染时,不需要为静态子树创建新节点;2.在虚拟DOM中打补丁(patching)的过程可以跳过。
标记静态节点:通过递归的方式从上向下标记静态节点时,如果一个节点被标记为静态节点,但它的子节点却被标记为动态节点,就说明该节点不是静态节点,可以将它改为动态节点。
标记静态根节点:使用递归的方式从上向下寻找,在寻找的过程中遇到的第一个静态节点就为静态根节点,同时不再向下继续查找。但有两种情况比较特殊:一种是如果一个静态根节点的子节点只有一个文本节点,那么不会将它标记成静态根节点,即便它也属于静态根节点;另一种是如果找到的静态根节点是一个没有子节点的静态节点,那么也不会将它标记为静态根节点。因为这两种情况下,优化成本大于收益。


IP属地:北京1楼2025-10-27 22:02回复