В консоли вы можете увидеть следующее сообщение:
Angular работает в режиме разработки.Вызовите enableProdMode (), чтобы включить производственный режим.
Это означает, что Angular повторно запускает обнаружение изменений в режиме разработки после каждого цикла и проверяет, что ничего не изменилось после второго раза.Если это произойдет, будет показано предупреждение, потому что эти изменения могут не быть обнаружены в производственном процессе без повторного запуска.
Если вы запустите enableProdMode();
в файле main.ts
перед загрузкой (вы должны обновить один раз в Stackblitz), вы увидите, что функция будет вызываться только вдвое реже, два раза остаются.
Обнаружение изменений будет выполняться по многим различным причинам при использовании значения по умолчанию ChangeDetectionStrategy
.Каждый раз, когда ваша функция будет оценена.Если вы хотите, чтобы обнаружение изменений запускалось только один раз, измените ChangeDetectionStrategy
на OnPush
следующим образом:
@Component({
selector: 'my-app',
templateUrl: './app.component.html',
styleUrls: [ './app.component.css' ],
changeDetection: ChangeDetectionStrategy.OnPush
})
Обнаружение изменений теперь запускается только при изменении значения @Input
(ссылка на объект) или событие было запущено.