Прощай, Default: Angular меняет стандартную стратегию на OnPush и вводит Eager
Коллеги, привет! От команды Angular пришли отличные новости: в 22-й версии стратегия OnPush станет стандартной. По этому поводу разработчики выпустили новый RFC (Request for Comments). Ниже я подготовил перевод текста и оставил ссылку на само обсуждение в конце, вдруг кто-то захочет поспорить или переубедить команду Angular :)
Компоненты будут использовать ChangeDetectionStrategy.OnPush по умолчанию.
Мы переименовываем ChangeDetectionStrategy.Default в ChangeDetectionStrategy.Eager
Отслеживание изменений (Change detection) это способ Angular выявлять изменения в состоянии приложения и синхронизировать их с пользовательским интерфейсом. Переход на zoneless (режим без Zone.js) создал требование, чтобы компоненты явно использовали ChangeDetectionStrategy.OnPush или, по крайней мере, были OnPush-совместимыми. Быть OnPush-совместимым означает, что на функциональность вашего приложения не повлияет переключение на OnPush без каких-либо других изменений в коде.
Использование OnPush долгое время считалось лучшей практикой в Angular, и разработчики уже некоторое время просили нас внести это изменение. Наличие лучших практик по умолчанию означает, что разработчикам и командам не придется предпринимать дополнительные шаги для включения этой опции в каждом компоненте. Мы верим, что теперь, когда zoneless стабилен и хорошо поддерживается во всей экосистеме, настало подходящее время. Zoneless это настоящее и будущее приложений на Angular, и изменение стандартной стратегии ChangeDetectionStrategy соответствует этой реальности.
По аналогии с тем, как мы изменили версию по умолчанию для standalone-компонентов, мы автоматически мигрируем существующие кодовые базы Angular, чтобы явно установить ChangeDetectionStrategy.Eager, сохраняя их текущее
Читать на habr.com
