Что такое «зоны» в Angular?
«Зона» - это способ сохранения контекста выполнения асинхронных задач. Angular использует зоны, чтобы включить автоматическое обнаружение изменений в ответ на изменения, внесенные асинхронными задачами. Например, изменение, инициированное каким-либо кодом в setTimeout
, очевидно, является асинхронным, но Angular автоматически обнаружит любые изменения, внесенные этим асинхронным кодом - пока setTimeout
выполняется в зоне приложения (что он и делает по умолчанию).
Angular позволяет нам работать с зонами с помощью сервиса NgZone, который построен на zone.js.
При желании вы можете выбрать запуск асинхронной задачи за пределами угловой зоны, используя метод runOutsideOfAngular(..)
. Изменения за пределами угловой зоны автоматически не обнаруживаются.
Источник изображения.