Изменить стратегию обнаружения изменений по умолчанию
Как установить стратегию обнаружения изменений по умолчанию на OnPush
? Можно ли это как-то установить глобально?
Я хочу избежать добавления этой строки в каждый компонент
@Component({
...
changeDetection: ChangeDetectionStrategy.OnPush,
...
})
Ответы
Ответ 1
Стратегия обнаружения изменений может быть определена только для каждого компонента или директивы не глобально.
Использование пользовательского декоратора обескураживается, потому что он не будет поддерживаться компилятором предстоящего автономного шаблона.
Ответ 2
Невозможно установить глобальный ChangeDetection.
Тем не менее, его можно установить в CLI, так что для всех компонентов, вновь сгенерированных с использованием ng generate component
(или ng gc
), будет установлено значение OnPush
.
Запустите эту команду, чтобы установить ее:
ng config [email protected]/angular.component.changeDetection OnPush
В качестве альтернативы (это то, что делает эта команда), добавьте этот блок на базовом уровне вашего angular.json
:
// angular.json
{
//...
"schematics": {
"@schematics/angular": {
"component": {
"changeDetection": "OnPush"
}
}
}
}