更改默认更改检测策略
Posted
技术标签:
【中文标题】更改默认更改检测策略【英文标题】:Change default change detection strategy 【发布时间】:2016-10-15 18:36:38 【问题描述】:如何设置默认变更检测策略为OnPush
?可以以某种方式全局设置吗?
我想避免将这一行添加到每个组件中
@Component(
...
changeDetection: ChangeDetectionStrategy.OnPush,
...
)
【问题讨论】:
依赖于 ChangeDetectionStrategy.Default 策略的第三方组件呢? 我想他们应该指定 CheckAlways 如果他们依赖它......如果事实上可以轻松更改默认值。 他们不会,因为它是框架的默认值。如果你真的需要这种行为,我想你可以导入你自己的Component
环绕 ComponenrMetadata
。
【参考方案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"以上是关于更改默认更改检测策略的主要内容,如果未能解决你的问题,请参考以下文章
Angular ngOnChanges 和变化检测策略似乎是矛盾的?