针对特殊情况的OnPush变化检测

时间:2017-01-30 09:10:22

标签: angular typescript web-component angular2-changedetection

我使用ngrx开发了一个Angular 2应用程序,我对OnPush更改检测感兴趣,以获得更好的性能。我读了几篇关于它的文章说:“如果一个组件只依赖于它的输入属性,并且它们是不可变的,那么当且仅当其中一个输入属性发生变化时,该组件才会改变。”。因此,我有两个关于OnPush的(简单)问题:

1)如果我的组件混合了@Input()属性而不是输入属性,那么OnPush是无用的吗?

2)对于只有属性(没有@Input)的组件的相同问题。

感谢提前:)

1 个答案:

答案 0 :(得分:1)

OnPush不会影响组件内部状态。

如果你看看Victor Savkin的这个excellent post,他会特别提到

  

值得注意的是,组件仍然可以具有私有可变性   状态只要它只是由于输入更新或更改而改变   从组件模板中触发的事件。唯一的事情   不允许的OnPush策略取决于共享的可变状态。   在这里阅读更多相关信息。

值得花时间在这篇文章以及他所指的同伴帖子上。