我使用ngrx开发了一个Angular 2应用程序,我对OnPush更改检测感兴趣,以获得更好的性能。我读了几篇关于它的文章说:“如果一个组件只依赖于它的输入属性,并且它们是不可变的,那么当且仅当其中一个输入属性发生变化时,该组件才会改变。”。因此,我有两个关于OnPush的(简单)问题:
1)如果我的组件混合了@Input()属性而不是输入属性,那么OnPush是无用的吗?
2)对于只有属性(没有@Input)的组件的相同问题。
感谢提前:)
答案 0 :(得分:1)
OnPush不会影响组件内部状态。
如果你看看Victor Savkin的这个excellent post,他会特别提到
值得注意的是,组件仍然可以具有私有可变性 状态只要它只是由于输入更新或更改而改变 从组件模板中触发的事件。唯一的事情 不允许的OnPush策略取决于共享的可变状态。 在这里阅读更多相关信息。
值得花时间在这篇文章以及他所指的同伴帖子上。