是否有人将ChangeDetectionStrategy.OnPush
与Ionic 3一起使用?
我习惯在每个Angular应用中打开它。但是使用Ionic时,大多数组件在启用OnPush
时会停止正常工作,比如标签和复习,然后我必须做一些黑客攻击并手动检测更改以使其正常工作。
在Ionic中使用它是一种好习惯吗?或者没必要?
答案 0 :(得分:0)
抱歉,我认为你的问题现在用的方式有点奇怪(原因答案是:“当然使用它,但要了解它是如何工作的,它做了什么,知道什么时候值得做它“强>)。
Ionic 3在引擎盖下利用Angular,更改检测是Angular的“功能”。以高级方式使用它或不使用Ionic 3(与Angular相同)主要是特定应用程序上下文的问题:例如,如果你有一个大型项目,在很多组件中有大量的数据绑定,并且存在性能问题=>你绝对应该考虑将变化检测策略作为优化的一部分。
事实上,Ionic团队构建的一些组件可能需要额外的关注,他们可能不会“尊重”开箱即用的CD(在很多情况下,这是因为他们使用可变值等等,你必须在ngDoCheck钩子中添加检查逻辑等),但您可以随时检查来源并找出CD无法正常工作的原因。如果您的应用程序性能要求很高,那么在您自己的组件中执行CD.onPush是有实际价值的。
总结如下:
了解变化检测,它是如何工作的以及何时起作用对于严重的角度开发来说非常关键。
绝对应该考虑具有/将具有大量组件/绑定的应用程序,以帮助在适当的时候优化性能。从一开始就考虑将来的CD优化来编写这样的应用程序是有意义的。