首页 > 解决方案 > 我应该在 Ionic 3 中使用 ChangeDetectionStrategy OnPush

问题描述

有人应该ChangeDetectionStrategy.OnPush与 Ionic 3 一起使用吗?

我习惯于在每个 Angular 应用程序中打开它。但是对于 Ionic,大多数组件在打开时都会停止正常工作OnPush,比如选项卡和刷新器,然后我必须做一些黑客攻击并手动检测更改以使其正常工作。

在 Ionic 中使用它是一个好习惯吗?还是没有必要?

标签: angularionic-frameworkionic3

解决方案


抱歉,我认为您现在提出问题的方式有点奇怪(原因答案将是:“当然使用它,但要了解它的工作原理和作用,并知道何时值得这样做”)。

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

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

总而言之:

  • 了解变更检测、它是如何工作的以及它何时有帮助对于一般的严重角度开发非常关键。

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


推荐阅读