我应该使用ChangeDetectionStrategy OnPush和Ionic 3

时间:2018-06-11 09:02:25

标签: angular ionic-framework ionic3

是否有人将ChangeDetectionStrategy.OnPush与Ionic 3一起使用?

我习惯在每个Angular应用中打开它。但是使用Ionic时,大多数组件在启用OnPush时会停止正常工作,比如标签和复习,然后我必须做一些黑客攻击并手动检测更改以使其正常工作。

在Ionic中使用它是一种好习惯吗?或者没必要?

1 个答案:

答案 0 :(得分:0)

抱歉,我认为你的问题现在用的方式有点奇怪(原因答案是:“当然使用它,但要了解它是如何工作的,它做了什么,知道什么时候值得做它“)。

Ionic 3在引擎盖下利用Angular,更改检测是Angular的“功能”。以高级方式使用它或不使用Ionic 3(与Angular相同)主要是特定应用程序上下文的问题:例如,如果你有一个大型项目,在很多组件中有大量的数据绑定,并且存在性能问题=>你绝对应该考虑将变化检测策略作为优化的一部分。

事实上,Ionic团队构建的一些组件可能需要额外的关注,他们可能不会“尊重”开箱即用的CD(在很多情况下,这是因为他们使用可变值等等,你必须在ngDoCheck钩子中添加检查逻辑等),但您可以随时检查来源并找出CD无法正常工作的原因。如果您的应用程序性能要求很高,那么在您自己的组件中执行CD.onPush是有实际价值的。

总结如下:

  • 了解变化检测,它是如何工作的以及何时起作用对于严重的角度开发来说非常关键。

  • 绝对应该考虑具有/将具有大量组件/绑定的应用程序,以帮助在适当的时候优化性能。从一开始就考虑将来的CD优化来编写这样的应用程序是有意义的。