如何在使用' changeDetection:ChangeDetectionStrategy.OnPush'?时触发事件时防止更改检测

时间:2018-04-10 13:47:06

标签: angular angular2-changedetection angular-changedetection

我有一个带有一些复杂计算的getter属性,为了防止不必要的changeDetections我改为ChangeDetectionStrategyOnPush

即使使用ChangeDetectionStrategy.OnPushgetter也会对button clicks等视图中触发的每个可能事件执行。

这会在我的应用中造成一些严重的性能问题。有没有办法禁用更改检测并仅在需要时触发它? 感谢。

1 个答案:

答案 0 :(得分:2)

您的问题非常模糊,因为您没有提供任何代码示例。出于这个原因,很难找到原因,为什么onPush策略对您的案例不起作用。我建议将你的代码与提到的常见陷阱的例子进行比较in this article

您也可以考虑实施onChanges() lifecycle hook并手动定义案例,以便进行变更计算。