【问题标题】:Change default change detection strategy更改默认更改检测策略
【发布时间】:2016-10-15 18:36:38
【问题描述】:

如何设置默认变更检测策略为OnPush?可以以某种方式全局设置吗?

我想避免将这一行添加到每个组件中

@Component({
    ...
    changeDetection: ChangeDetectionStrategy.OnPush,
    ...
})

【问题讨论】:

  • 依赖于 ChangeDetectionStrategy.Default 策略的第三方组件呢?
  • 我想他们应该指定 CheckAlways 如果他们依赖它......如果事实上可以轻松更改默认值。
  • 他们不会,因为它是框架的默认值。如果你真的需要这种行为,我想你可以导入你自己的 Component 环绕 ComponenrMetadata

标签: angular angular-changedetection


【解决方案1】:

可以在 CLI 中将更改检测策略设置为 OnPush,以便新生成的组件将其设置为这样。

ng generate component test --changeDetection=OnPush

您还可以在 angular.json 中将该值设置为默认值,这样您就不需要每次都设置标志:

// angular.json
{
  //...
  "schematics": {
    "@schematics/angular": {
      "component": {
        "changeDetection": "OnPush"
      }
    }
  }
}

【讨论】:

    【解决方案2】:

    变更检测策略只能按组件或指令定义,不能全局定义。

    不鼓励使用自定义装饰器,因为即将推出的离线模板编译器将不支持它。

    【讨论】:

    • 看下一个答案,可能来自 cli // angular.json { //... "schematics": { "@schematics/angular": { "component": { "changeDetection": "OnPush" } } } }
    猜你喜欢
    • 2019-10-15
    • 2017-06-27
    • 2017-12-27
    • 2010-12-02
    • 2012-12-13
    • 1970-01-01
    • 2021-03-06
    • 1970-01-01
    • 2023-04-06
    相关资源
    最近更新 更多