【问题标题】:Should I use ChangeDetectionStrategy OnPush with Ionic 3我应该在 Ionic 3 中使用 ChangeDetectionStrategy OnPush
【发布时间】:2018-06-12 04:27:51
【问题描述】:

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

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

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

【问题讨论】:

    标签: angular ionic-framework ionic3


    【解决方案1】:

    对不起,我认为您现在的问题表述方式有点奇怪(原因答案将是:“当然使用它,但要了解它的工作原理和作用,并知道什么时候值得做它”)。

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

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

    总之:

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

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

    【讨论】:

      猜你喜欢
      • 2022-01-09
      • 1970-01-01
      • 2019-01-17
      • 1970-01-01
      • 2018-08-27
      • 2011-11-20
      • 1970-01-01
      • 2012-12-14
      • 2018-08-10
      相关资源
      最近更新 更多