【问题标题】:When not to use ChangeDetectionStrategy OnPush何时不使用 ChangeDetectionStrategy OnPush
【发布时间】:2022-01-09 06:55:26
【问题描述】:
我研究了很多,发现其中一种性能技术是在Angular中将ChangeDetectionStrategy设置为OnPush,以减少Angular App中的修改次数,但在某些情况下不建议使用它?
我将开始在具有声明式/反应式 RxJS 模式的 Ionic Angular 应用程序中使用它。
很高兴向我建议一些关键字以最大限度地提高性能。
【问题讨论】:
标签:
angular
ionic-framework
rxjs
reactive-programming
【解决方案1】:
我认为没有任何真正的理由使用 DefaultStrategy。
但是,如果您使用 OnPush(我强烈鼓励您这样做),您必须确保您不会改变您的 @Inputs,但您要保持它们不可变并替换它指向的整个实例。
有时您可能会发现自己意外地发生了变异。
在这些情况下,Angulars ChangeDetection 不会在使用 OnPush 时自行触发,您可能很难找出失败的地方。
DefaultStrategy 在这些情况下更不容易出错,也许,
如果您的组件很小并且对性能的影响很小,您不想走崎岖不平的道路而只保留 DefaultStrategy。