0_1524721325750_default.gif

默认情况下,Angular会刷新所有节点。

也就是说,无论哪个层级上的节点方式了变化,整个组件树都会被检查一次。简单地说:整个组件树里面所有组件的钩子全部都会被执行一次。

如果组件结构比较简单,这样没有问题。但是对于组件结构极其复杂的应用来说,就会成为性能瓶颈。

实例代码:https://embed.plnkr.co/mx3ZnfhfUtQECb4av3MP/

0_1524721487152_onpush.gif

如上图,在OnPush策略下,只会检测发生了变化的节点。实例代码:https://embed.plnkr.co/qvQIkHaoN51AdbzwGK81/

本文由 @业余小编 意译改写,英文版原文:https://hackernoon.com/angular-2-4-visualizing-change-detection-default-vs-onpush-3d7ed1f69f8e