У меня была такая же проблема некоторое время назад, и это то, что я нашел, что помогло мне решить эту проблему.
- В DOM было добавлено много слушателей событий.В частности, я обнаружил, что эти прослушиватели событий были добавлены в
document
, скажем, 20 click
прослушиватели добавлены в документ, поэтому каждый щелчок в любом месте ваших приложений будет вызывать все обработчики 20 щелчков и будет вызывать 20 changeDetection
циклы для всего приложения.(У меня была эта проблема, потому что я использовал один из пакетов css: переключение выпадающего меню из Bootstrap)
Вы можете проверить event listeners
, как показано на рисунке ниже.
В вашем приложении отображается много компонентов, например, у вас есть список из 100 элементов, и каждый элемент в списке является компонентом сам по себе.Теперь после некоторого события браузера, когда в приложении запускается цикл changeDetection, будет проверяться все приложение вместе с проверкой изменений во всех 100 визуализированных компонентах.В зависимости от ваших потребностей приложения. Если у вас много повторяющихся компонентов, вы можете изменить стратегию
changeDetection
для повторяющегося компонента на
onPush
, таким образом, по крайней мере все входные свойства соответствующего компонента не будут проверяться, если ихссылки не изменены.
Надеюсь, что эти два полезны для вашего приложения!