Я использую Openlayers 6 в своем проекте вместе с Angular 8. И до сих пор я замечал, что всякий раз, когда я наводил курсор на карту Openlayers, компонент Angular, на котором расположена карта, перерисовывается.
Мой вопрос в том, как заставить родительский компонент постоянно переставлять рендеринг при наведении курсора. Потому что это замедляет работу приложения. В моем проекте есть гораздо более крупный компонент, и из-за этого повторный рендеринг всего сделает само приложение медленнее.
Для этого я создал репо, чтобы продемонстрировать это: https://github.com/petrovichm/angular-openlayers-hover-problem. В этом примере я добавил метод в html, который будет регистрировать, когда он запускается, таким образом давая обзор, сколько раз угловой компонент повторного рендеринга.
Я хотел создать онлайн-запуск с помощью plunker илиcodeanbox, но когда я делаю этот пример, окно зависает из-за бесконечного цикла повторного рендеринга, что делает их непригодными для использования, на самом деле этого не происходит, когда я запускаю этот проект локально, это происходит только на парить
Спасибо.
@Component({ ..., changeDetection: ChangeDetectionStrategy.OnPush })
Это должно предотвратить проблему, о которой вы говорите. - person Daniel W Strimpel   schedule 08.02.2020