Как предотвратить обнаружение изменений при возникновении события при использовании 'changeDetection: ChangeDetectionStrategy.OnPush'?
У меня есть свойство getter с некоторыми сложными вычислениями и порядком, чтобы избежать ненужных changeDetections
Я поменял на ChangeDetectionStrategy
в OnPush
,
Даже после использования ChangeDetectionStrategy.OnPush
getter
выполняется во всех возможных событиях, запущенных в представлении, как button clicks
,
И это вызывает некоторые серьезные проблемы с производительностью в моем приложении. Есть ли способ отключить обнаружение изменений и вызвать его только при необходимости? Благодарю.
1 ответ
Ваш вопрос очень расплывчатый, так как вы не предоставили пример кода. По этой причине действительно трудно найти причину, почему onPush
стратегия не работает для вашего случая. Я бы посоветовал сравнить ваш код с примерами распространенных ошибок, упомянутых в этой статье.
Вы также можете рассмотреть возможность реализации ловушки жизненного цикла onChanges() и вручную определить случаи, для которых должны иметь место вычисления изменений.