Это подробно объясняет onPush: https://netbasal.com/a-comprehensive-guide-to-angular-onpush-change-detection-strategy-5bac493074a4
Он срабатывает при изменении @Input
или при возникновении события.
ChangeDetectorRef знает несколько методов, которые могут быть интересны
Звучит так, будто вы хотите отсоединить и подключить вручную:
constructor(private cd: ChangeDetectorRef){}
public ngOnInit() {
this.cd.detach();
// do stuff
this.cd.reattach();
}
Если вы отсоединяете и никогда не присоединяете, да, никакие изменения не отразятся на пользовательском интерфейсе.
Если вам нужно выполнить тяжелые задачи и вам нужно остановить обнаружение изменений, вам также придется повторно включить его с помощью reattach()
Хотя это также звучит так, как будто вы хотите переосмыслить структуру компонентов, поскольку вы хотите как можно меньше возиться с обнаружением изменений, чтобы избежать ошибок пользовательского интерфейса.