Что такое «зоны» в Angular?

«Зона» - это способ сохранения контекста выполнения асинхронных задач. Angular использует зоны, чтобы включить автоматическое обнаружение изменений в ответ на изменения, внесенные асинхронными задачами. Например, изменение, инициированное каким-либо кодом в setTimeout, очевидно, является асинхронным, но Angular автоматически обнаружит любые изменения, внесенные этим асинхронным кодом - пока setTimeout выполняется в зоне приложения (что он и делает по умолчанию).

Angular позволяет нам работать с зонами с помощью сервиса NgZone, который построен на zone.js.

При желании вы можете выбрать запуск асинхронной задачи за пределами угловой зоны, используя метод runOutsideOfAngular(..). Изменения за пределами угловой зоны автоматически не обнаруживаются.

Источник изображения.