Прощай, Zone.js: ускоряем Angular с Signal API и Zoneless-подходом

Привет! Я Незар, фронтенд-разработчик Т-Банка в одном из продуктов Т-Бизнеса. Наша команда использует Angular, и мы следим за всеми изменениями, которые с ним происходят. В статье разберу, как Angular эволюционировал от Zone.js к Zoneless-приложениям с современным реактивным подходом Signal API и почему это стало ключевым шагом для повышения производительности и упрощения реактивного программирования. На примерах и замерах производительности посмотрим, как переход к Zoneless-подходу с Signal API позволяет сократить избыточные перерисовки, ускорить отклик приложения и сделать код значительно чище и предсказуемее. Сделаем Angular-приложения быстрее и проще, добро пожаловать под кат!

https://habr.com/ru/companies/tbank/articles/928206/

#angular #change_detection #zonejs #Signal_API #zoneless

Прощай, Zone.js: ускоряем Angular с Signal API и Zoneless-подходом

Привет! Я Незар, фронтенд-разработчик Т-Банка в одном из продуктов Т-Бизнеса. Наша команда использует Angular, и мы следим за всеми изменениями, которые с ним происходят. В статье разберу, как Angular...

Хабр

От магии до понятной структуры: разбираемся, как работает Change Detection в Angular

В Angular любое изменение в компоненте, которое отображается на экране, является результатом работы механизма отслеживания изменений (Change Detection, CD). За этим процессом стоит Zone.js, который можно представить в роли дирижера, сообщающего компонентам о необходимости обновить DOM. Zone.js не запускает CD сам. Он лишь создает контекст, в котором Angular потом может его запустить. Его задача только уведомлять Angular о завершении асинхронных операций, после чего Angular решает, нужно ли проверять изменения. Чтобы понять важность такого подхода, нужно учитывать особенности JavaScript. В JavaScript асинхронные операции, такие как setTimeout или fetch, разрывают стек вызовов. Это значит, что callback-функция, выполняемая после завершения асинхронной операции, не имеет информации о контексте, в котором она была вызвана. Для фреймворка, который отслеживает изменения, это создает определенные трудности: как узнать, что асинхронная операция завершилась и, возможно, изменила данные? Заглянуть под капот

https://habr.com/ru/articles/925260/

#Angular #Change_Detection #Zonejs #Zoneless #Angular_Signals #Производительность #Оптимизация #RxJS #Архитектура #javascript

От магии до понятной структуры: разбираемся, как работает Change Detection в Angular

Введение: Невидимый Дирижер и Измеримая Цена В Angular любое изменение в компоненте, которое отображается на экране, является результатом работы механизма отслеживания изменений (Change Detection,...

Хабр

Computed сигналы и ChangeDetection — подробный разбор

Сигналы - новый реактивная модель для фреймворка Angular, который предлагает улучшение производительности, а также более простой подход к написанию реактивного кода. Для многих моих коллег сигналы стали чем-то мистическим. С одной стороны, код с ними стал выглядеть элегантнее, с другой была обнаружена проблема с пониманием внутренних механизмов их работы. В частности, загадочно выглядели computed сигналы, в которых в отличие от хуков React не прописываются зависимости напрямую. Также возникали вопросы связанные с детекцией изменений. В отличие от Observable и async pipe, который использует напрямую ChangeDetectorRef, сигналы могут вызываться в шаблоне, вызывая, при этом, его изменения. В этой статье мы погрузимся в исходный код сигналов и разберем детально их работу.

https://habr.com/ru/articles/832520/

#angular_signals #change_detection #сигналы #reactive_programming

Computed сигналы и ChangeDetection — подробный разбор

Сигналы - новый реактивная модель для фреймворка Angular, которая предлагает улучшение производительности, а также более простой подход к написанию реактивного кода. Для многих моих коллег сигналы...

Хабр