【问题标题】: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 具有切实的价值。
总之: