Механизм ChangeDetection
Last updated
Was this helpful?
Last updated
Was this helpful?
В Angular механизм отслеживания изменений (англ. Change Detection) отвечает за своевременное отображение в данных при их изменении и обычно запускается при возникновении , выполнении HTTP-запросов или вызове функции или .
Ключевая роль в отслеживании изменений у библиотеки zone.js, которая разделяет все Angular приложение на секторы, каждый из которых запоминает контекст асинхронного выполнения. Такой подход позволяет запускать отслеживание изменений только в месте выполнения асинхронной операции, а не во всем приложении.
Механизм отслеживания изменений может работать согласно одной из двух предопределенных стратегий:
Default - запускается при любом действии пользователя или изменения состояния компонента;
OnPush - запускается в момент вызова стадии жизненного цикла компонента и при любом изменении значения используемых в шаблоне объектов .
Стратегия задается в свойстве changeDetection объекта конфигурации декоратора @Component() и указывается для каждого компонента отдельно. Если параметр не указан явно - используется стратегия Default.
Стратегия задается с помощью перечисления ChangeDetectionStrategy.
Стратегия OnPush используется для повышения эффективности работы приложения за счет снижения количества вызовов механизма отслеживания изменений.
В приведенном примере механизм Change Detection не будет вызван, например, при , но будет запущен при изменении свойства book.