Как применить onPush обнаружение изменений в угловом только для определенного события - PullRequest
0 голосов
/ 09 октября 2019

Я работал над приложением, которое уже разработано с использованием определения углов по умолчанию, и мы столкнулись с проблемой замедления. Я попытался использовать обнаружение изменений onPush, которое приводит к большой загрузке в производительности, но требует больших изменений.

Итак, я попытался использовать detach () ChangeDetectorRef, чтобы отсоединить мой компонент от обнаружения изменений нанажмите кнопку и, когда обработка будет завершена, установите ее снова, чтобы можно было обнаружить изменение угла. Но это не дало какого-либо улучшения производительности.

Есть ли какой-либо другой способ, которым мы могли бы воспроизвести то, что происходит при обнаружении изменений onPush нажатием кнопки, и когда обработчик событий заканчивает выполнение, мы изменяемизменить стратегию обнаружения обратно по умолчанию?

Заранее спасибо.

1 Ответ

0 голосов
/ 09 октября 2019

Не уверен, но, возможно, стоит взглянуть на ngZone.runOutsideAngular (). Это способ избежать обнаружения изменений Angular, не отключая детекторы изменений. Например:

 constructor(private zone: NgZone) {}

    this.zone.runOutsideAngular(() => {
        this.document.addEventListener(
            'click',
            this.onDocumentClick.bind(this)
        );
    });

Надеюсь, это поможет вам!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...