#blog
Проблема классической обработки ошибок
В многоуровневом коде при оборачивании ошибок теряется стек вызовов и тип исходной ошибки. Обычно это выглядит так:
При этом теряется контекст, усложняется отладка.
Error.cause: решение проблемы
Свойство cause позволяет сохранить исходную ошибку при создании новой.
Теперь доступны оба стека вызовов: верхнего уровня и исходной ошибки.
Пример вывода:
Более точные проверки в тестах
С cause можно проверять не только верхнеуровневую ошибку, но и её причину:
Тесты становятся точнее и надёжнее.
Подводные камни и рекомендации
- cause не выводится автоматически через
- Не стоит оборачивать каждую мелкую ошибку — это может усложнить отладку.
-
Вывод полной цепочки ошибок можно реализовать через вспомогательные функции.
Поддержка в средах:
- Chrome 93+, Firefox 91+, Safari 15+, Edge 93+
- Node.js 16.9+
- Bun и Deno (актуальные версии)
Для TypeScript: требует
Статья: https://habr.com/ru/companies/timeweb/articles/967440/
Error.cause в JavaScript - основные моменты:Проблема классической обработки ошибок
В многоуровневом коде при оборачивании ошибок теряется стек вызовов и тип исходной ошибки. Обычно это выглядит так:
throw new Error('Something went wrong: ' + err.message);При этом теряется контекст, усложняется отладка.
Error.cause: решение проблемы
Свойство cause позволяет сохранить исходную ошибку при создании новой.
Теперь доступны оба стека вызовов: верхнего уровня и исходной ошибки.
Пример вывода:
Error: Something went wrong
at ...
Caused by: SyntaxError: Unexpected token b in JSON at position 2
at JSON.parse
at ...
Более точные проверки в тестах
С cause можно проверять не только верхнеуровневую ошибку, но и её причину:
expect(err.cause).toBeInstanceOf(ValidationError);
Тесты становятся точнее и надёжнее.
Подводные камни и рекомендации
- cause не выводится автоматически через
console.error(err) — нужно логировать отдельно.- Не стоит оборачивать каждую мелкую ошибку — это может усложнить отладку.
-
console.error(err.stack) выводит только стек текущей ошибки — для полного стека нужно обращаться к err.cause.stack. Вывод полной цепочки ошибок можно реализовать через вспомогательные функции.
Поддержка в средах:
- Chrome 93+, Firefox 91+, Safari 15+, Edge 93+
- Node.js 16.9+
- Bun и Deno (актуальные версии)
Для TypeScript: требует
"target": "es2022" и "lib": ["es2022"].Статья: https://habr.com/ru/companies/timeweb/articles/967440/
Хабр
Цепочка ошибок в JavaScript: удобная отладка кода с помощью Error.cause
Обработка ошибок в JavaScript всегда была немного хаотичной. Получить ошибку легко, но отследить ее первоисточник бывает очень сложно. Именно здесь и приходит на помощь свойство cause . ❯ Проблема...
❤3
#blog
Сегодня посмотрим на обновления Chrome 144 beta. Список немалый, кратко:
1. CSS:
- Позиционирование с трансформациями через
- Стилизация поиска через
-
-
- Поддержка
- Обновление каскадирования в SVG2.
2. Web API:
-
-
-
- Новый элемент
- WebGPU:
- Новый API
- Поддержка атрибутов в SVG-ссылках.
-
- Поддержка
- Отражение MathML-символов в RTL.
- Multicast в Direct Sockets для Isolated Apps.
-
- Pointer Lock на Android.
- WebAuthn Signal API на iOS и Android.
3. Origin Trials:
- Расширенная работа с текстом в Canvas.
4. Депрекации:
- Все Privacy Sandbox API (Topics, Protected Audience и др.) устаревают.
-
-
- Запрет загрузки внешних сущностей в XML.
Статья: https://developer.chrome.com/blog/chrome-144-beta?hl=en
Сегодня посмотрим на обновления Chrome 144 beta. Список немалый, кратко:
1. CSS:
- Позиционирование с трансформациями через
anchor().- Стилизация поиска через
::search-text.-
@scroll-state для стилизации по направлению прокрутки.-
overscroll-behavior при прокрутке с клавиатуры.- Поддержка
@container без учёта дерева.- Обновление каскадирования в SVG2.
2. Web API:
-
XRVisibilityMaskChange для WebXR.-
onanimationcancel в GlobalEventHandlers.-
ViewTransitions.waitUntil() для контроля анимационного дерева.- Новый элемент
<geolocation>.- WebGPU:
subgroup_id, улучшения uniform-буферов.- Новый API
Temporal для дат.- Поддержка атрибутов в SVG-ссылках.
-
clipboardchange для синхронизации буфера обмена.- Поддержка
ch-ua-high-entropy-values в Permissions Policy.- Отражение MathML-символов в RTL.
- Multicast в Direct Sockets для Isolated Apps.
-
InteractionCount для анализа взаимодействий.- Pointer Lock на Android.
- WebAuthn Signal API на iOS и Android.
3. Origin Trials:
- Расширенная работа с текстом в Canvas.
4. Депрекации:
- Все Privacy Sandbox API (Topics, Protected Audience и др.) устаревают.
-
Related Website Sets и requestStorageAccessFor устаревают.-
savedTabGroups удалён из SyncTypesListDisabled.- Запрет загрузки внешних сущностей в XML.
Статья: https://developer.chrome.com/blog/chrome-144-beta?hl=en
Chrome for Developers
Chrome 144 beta | Blog | Chrome for Developers
Learn about the latest features shipping in Chrome.
❤3
#blog
Angular pipes: время для переосмысления
Статья, в которой подробно разбирается внутренняя механика пайпов в контексте Ivy: фазы создания и обновления, устройство мемоизации pure пайпов, чем отличаются пайпы с фиксированным и изменяющимся числом аргументов и какую роль в этом играют структуры TView и LView.
Отдельно рассматривается взаимодействие пайпов с DI и особенности impure пайпов. Автор также показывает, как пайпы соотносятся с новой системой реактивности, рассуждает о том, зачем они всё ещё нужны в эпоху сигналов и в каких сценариях оказываются особенно полезны.
Отличный повод взглянуть на этот инструмент под новым углом!
Ссылка на статью: https://medium.com/coreteq/angular-pipes-time-to-rethink-f616ec84fb8d
Angular pipes: время для переосмысления
Статья, в которой подробно разбирается внутренняя механика пайпов в контексте Ivy: фазы создания и обновления, устройство мемоизации pure пайпов, чем отличаются пайпы с фиксированным и изменяющимся числом аргументов и какую роль в этом играют структуры TView и LView.
Отдельно рассматривается взаимодействие пайпов с DI и особенности impure пайпов. Автор также показывает, как пайпы соотносятся с новой системой реактивности, рассуждает о том, зачем они всё ещё нужны в эпоху сигналов и в каких сценариях оказываются особенно полезны.
Отличный повод взглянуть на этот инструмент под новым углом!
Ссылка на статью: https://medium.com/coreteq/angular-pipes-time-to-rethink-f616ec84fb8d
Medium
Angular pipes: Time to rethink
Let’s discuss the role pipes play in modern Angular architecture.
❤4
#blog
Я никак не мог пройти мимо и не поделиться красивой и качественной статьей "CSS Wrapped 2025". Как понятно из названия - это подбивка из значимых улучшений в уходящем году. Крайне рекомендую посетить оригинал, а если совсем вкратце списком:
- Invoker Commands
- Dialog Light Dismiss
- popover=hint
- Customizable select
- ::scroll-marker/button()
- scroll-target-group
- Anchored container queries
- Interest invokers
- Scroll-state queries
- Tree counting functions
- scrollIntoView() container
- Nested View Transition Groups
- DOM State-Preserving Move
- Advanced attr() function
- ToggleEvent.source
- text-box features
- shape() function
- if() statements
- Custom Functions
- Expanded range syntax
- Stretch sizing keyword
- corner-shape
Статья - https://chrome.dev/css-wrapped-2025
Я никак не мог пройти мимо и не поделиться красивой и качественной статьей "CSS Wrapped 2025". Как понятно из названия - это подбивка из значимых улучшений в уходящем году. Крайне рекомендую посетить оригинал, а если совсем вкратце списком:
- Invoker Commands
- Dialog Light Dismiss
- popover=hint
- Customizable select
- ::scroll-marker/button()
- scroll-target-group
- Anchored container queries
- Interest invokers
- Scroll-state queries
- Tree counting functions
- scrollIntoView() container
- Nested View Transition Groups
- DOM State-Preserving Move
- Advanced attr() function
- ToggleEvent.source
- text-box features
- shape() function
- if() statements
- Custom Functions
- Expanded range syntax
- Stretch sizing keyword
- corner-shape
Статья - https://chrome.dev/css-wrapped-2025
CSS Wrapped 2025
Sculpt dynamic interfaces, stretch your imagination, and play with these 22 powerful new CSS features that landed in Chrome this year.
❤3
#blog
Статья про возможность оптимизации загрузки JS с помощью Explicit Compile Hints. Кратко:
- Проблема: компиляция JS при запуске замедляет загрузку.
- Решение в Chrome 136: коммент //# allFunctionsCalledOnLoad для eager-компиляции всего файла.
- Выгода: средний показатель ускорения на популярных сайтах - 630 мс.
- Как работает:
Без подсказки — функции компилируются при первом вызове
С подсказкой — компиляция идёт заранее, в фоне.
- Пример:
- Важно: используйте фичу умеренно — избыточная компиляция тратит память.
- Далее: поддержка eager compilation на отдельные функции.
Статья: https://v8.dev/blog/explicit-compile-hints
Статья про возможность оптимизации загрузки JS с помощью Explicit Compile Hints. Кратко:
- Проблема: компиляция JS при запуске замедляет загрузку.
- Решение в Chrome 136: коммент //# allFunctionsCalledOnLoad для eager-компиляции всего файла.
- Выгода: средний показатель ускорения на популярных сайтах - 630 мс.
- Как работает:
Без подсказки — функции компилируются при первом вызове
С подсказкой — компиляция идёт заранее, в фоне.
- Пример:
//# allFunctionsCalledOnLoad
function testfunc2() { /* скомпилируется сразу */ }
- Важно: используйте фичу умеренно — избыточная компиляция тратит память.
- Далее: поддержка eager compilation на отдельные функции.
Статья: https://v8.dev/blog/explicit-compile-hints
v8.dev
Giving V8 a Heads-Up: Faster JavaScript Startup with Explicit Compile Hints · V8
Explicit compile hints control which JavaScript files and functions are parsed and compiled eagerly
❤2
#blog
Сегодня сразу две статьи
Первая - о том, как Model Context Protocol (MCP) меняет взаимодействие ИИ с Angular-проектами. В ней разбирается, зачем вообще нужен MCP, как Angular MCP-сервер защищает от устаревших API и ошибок LLM, почему локальный доступ к проекту и окружению - ключ к настоящим агентным возможностям, и что всё это значит для будущего IDE и AI-ассистентов (на примере Google Antigravity).
Ссылка: https://blog.angulartraining.com/using-ai-with-angular-2025-update-5ab4b629e331
Вторая - практический эксперимент с Angular MCP-сервером и vibe-кодингом. Пошаговый разбор создания Todo-приложения с помощью ИИ: от настройки MCP и агентских инструкций до работы с сигналами, потоком управления и Angular CLI. Честный опыт с плюсами и минусами работы и выводами о том, где ИИ реально помогает, а где его всё ещё нужно жёстко контролировать.
Если вам интересно, как выглядит современная связка Angular + ИИ на практике - и почему без правильных инструкций агенту никуда - эти две статьи отлично дополняют друг друга.
Ссылка: https://dev.to/angular/a-quick-vibe-code-experiment-with-angulars-mcp-server-3g2h
Сегодня сразу две статьи
Первая - о том, как Model Context Protocol (MCP) меняет взаимодействие ИИ с Angular-проектами. В ней разбирается, зачем вообще нужен MCP, как Angular MCP-сервер защищает от устаревших API и ошибок LLM, почему локальный доступ к проекту и окружению - ключ к настоящим агентным возможностям, и что всё это значит для будущего IDE и AI-ассистентов (на примере Google Antigravity).
Ссылка: https://blog.angulartraining.com/using-ai-with-angular-2025-update-5ab4b629e331
Вторая - практический эксперимент с Angular MCP-сервером и vibe-кодингом. Пошаговый разбор создания Todo-приложения с помощью ИИ: от настройки MCP и агентских инструкций до работы с сигналами, потоком управления и Angular CLI. Честный опыт с плюсами и минусами работы и выводами о том, где ИИ реально помогает, а где его всё ещё нужно жёстко контролировать.
Если вам интересно, как выглядит современная связка Angular + ИИ на практике - и почему без правильных инструкций агенту никуда - эти две статьи отлично дополняют друг друга.
Ссылка: https://dev.to/angular/a-quick-vibe-code-experiment-with-angulars-mcp-server-3g2h
Medium
Using AI with Angular — 2025 update
It’s 2025, and AI is almost everywhere at this point. To me, the AI landscape was changing too rapidly to write anything about it before…
👍3❤2
#blog
В завершение года - две небольших статьи про обновления в Chrome. На повестке - individual requests throttle и scroll-triggered animations. О чем повествуется:
В Chrome 144 появилось индивидуальное ограничение скорости сетевых запросов в DevTools.
- Можно блокировать или замедлять отдельные URL или домены, не всю страницу.
- Настройки — через вкладку Request conditions с масками, приоритетами и профилями.
- Заблокированные запросы — красные, замедленные — желтые с иконкой часов.
- Удобно тестировать влияние медленных ресурсов (например, сторонних API или картинок).
В Chrome 145 добавлены CSS-анимации, запускаемые при прокрутке (scroll-triggered animations).
- Теперь анимации активируются при достижении определённого положения скролла.
- Используются новые свойства: animation-trigger и timeline-trigger.
- Активация и деактивация задаются через диапазоны entry/exit.
- Работают на CSS, без IntersectionObserver.
Пример:
При прокрутке до нужного положения карточка плавно появляется (play-forwards), а при уходе из зоны видимости — исчезает (play-backwards).
Читать здесь:
https://developer.chrome.com/blog/throttle-individual-network-requests?hl=en
https://developer.chrome.com/blog/scroll-triggered-animations?hl=en
Всем хороших праздников и до встречи в новом году!
В завершение года - две небольших статьи про обновления в Chrome. На повестке - individual requests throttle и scroll-triggered animations. О чем повествуется:
В Chrome 144 появилось индивидуальное ограничение скорости сетевых запросов в DevTools.
- Можно блокировать или замедлять отдельные URL или домены, не всю страницу.
- Настройки — через вкладку Request conditions с масками, приоритетами и профилями.
- Заблокированные запросы — красные, замедленные — желтые с иконкой часов.
- Удобно тестировать влияние медленных ресурсов (например, сторонних API или картинок).
В Chrome 145 добавлены CSS-анимации, запускаемые при прокрутке (scroll-triggered animations).
- Теперь анимации активируются при достижении определённого положения скролла.
- Используются новые свойства: animation-trigger и timeline-trigger.
- Активация и деактивация задаются через диапазоны entry/exit.
- Работают на CSS, без IntersectionObserver.
Пример:
.card {
timeline-trigger: --t view() contain 15% contain 85%;
animation: unclip 0.35s ease-in-out both;
animation-trigger: --t play-forwards play-backwards;
}При прокрутке до нужного положения карточка плавно появляется (play-forwards), а при уходе из зоны видимости — исчезает (play-backwards).
Читать здесь:
https://developer.chrome.com/blog/throttle-individual-network-requests?hl=en
https://developer.chrome.com/blog/scroll-triggered-animations?hl=en
Всем хороших праздников и до встречи в новом году!
Chrome for Developers
Throttle individual network requests | Blog | Chrome for Developers
Use the Request conditions tab to block specific URLs or apply custom network throttling profiles to individual resources.
1❤3
#blog
Подробный гайд по Angular Signal Forms Validation, с примерами и кейсами. И хоть базовые правила знакомы всем (required, email, min/max, minLength/maxLength, pattern), но остальные возможности точно будут полезны для ознакомления:
- Кастомная валидация:
- Асинхронная валидация:
- Интеграция: validateStandartSchema() для Zod, Valibot и подобных.
- Структурные функции: applyEach(),
- Управление состоянием:
Статья: https://netbasal.medium.com/master-angular-signal-forms-validation-all-functions-explained-d9b0cd1c7be6
Подробный гайд по Angular Signal Forms Validation, с примерами и кейсами. И хоть базовые правила знакомы всем (required, email, min/max, minLength/maxLength, pattern), но остальные возможности точно будут полезны для ознакомления:
- Кастомная валидация:
validate(), доступ к полям и состояниям через FieldContext.- Асинхронная валидация:
validateAsync(), validateHttp(), поддержка lazy loading.- Интеграция: validateStandartSchema() для Zod, Valibot и подобных.
- Структурные функции: applyEach(),
apply(), applyWhen(), applyWhenValue() для переиспользования схем.- Управление состоянием:
debounce, disabled, hidden, readonly.Статья: https://netbasal.medium.com/master-angular-signal-forms-validation-all-functions-explained-d9b0cd1c7be6
Medium
Master Angular Signal Forms Validation — All Functions Explained
Angular Signal Forms provides a powerful, reactive, schema-based validation system that makes form validation both intuitive and type-safe…
👍4❤2
#blog
Сегодняшняя статья посвящена deepSignal - маленькой, но мощной утилите.
🔹 Что делает deepSignal:
- Создаёт сигнал для вложенного свойства объекта. Потребители уведомляются только при изменении этого конкретного свойства.
- Позволяет писать значения прямо во вложенный сигнал.
- Обеспечивает высокую производительность даже для больших форм.
В статье подробно разбирается то, как deepSignal работает «под капотом» и как его используют в сигнальных формах Angular.
Статья: https://medium.com/netanelbasal/the-magic-of-deepsignal-how-angular-signal-forms-enable-true-nested-reactivity-6b9e0d73eb9d
Сегодняшняя статья посвящена deepSignal - маленькой, но мощной утилите.
🔹 Что делает deepSignal:
- Создаёт сигнал для вложенного свойства объекта. Потребители уведомляются только при изменении этого конкретного свойства.
- Позволяет писать значения прямо во вложенный сигнал.
- Обеспечивает высокую производительность даже для больших форм.
В статье подробно разбирается то, как deepSignal работает «под капотом» и как его используют в сигнальных формах Angular.
Статья: https://medium.com/netanelbasal/the-magic-of-deepsignal-how-angular-signal-forms-enable-true-nested-reactivity-6b9e0d73eb9d
Medium
The Magic of deepSignal: How Angular Signal Forms Enable True Nested Reactivity
Angular’s signal-based forms introduce a deceptively simple idea that solves a long-standing reactivity problem: how to work with nested…
🔥4👍1
#blog
Статья посвящена тому, что автор называет "великим сдвигом во фронтенде", а именно сдвигу от React к Angular в 2026 ✨
Angular постепенно возвращается в игру - и не как "сложный фреймворк из прошлого", а как ответ на усталость от хаоса во фронтенде. Standalone-компоненты, сигналы, TypeScript-first архитектура и решения "из коробки" сделали Angular быстрым, предсказуемым и удобным для больших команд. Там, где раньше выбирали гибкость React, теперь всё чаще выбирают структуру, масштабируемость и долгосрочную поддержку.
Автор пишет о том, как структура Angular ускоряет разработку, облегчает масштабные рефакторинги, упрощает онбординг новых сотрудников и повышает стабильность приложений. Производительность и интеграция с TypeScript делают фреймворк особенно привлекательным для enterprise-проектов и сложных приложений.
Это всё не про то, что React стал плох, а про то, как Angular решает проблемы команд.
Подробное сравнение здесь: https://medium.com/@satnammca/the-great-frontend-shift-react-to-angular-by-2026-1697c05e860e
Статья посвящена тому, что автор называет "великим сдвигом во фронтенде", а именно сдвигу от React к Angular в 2026 ✨
Angular постепенно возвращается в игру - и не как "сложный фреймворк из прошлого", а как ответ на усталость от хаоса во фронтенде. Standalone-компоненты, сигналы, TypeScript-first архитектура и решения "из коробки" сделали Angular быстрым, предсказуемым и удобным для больших команд. Там, где раньше выбирали гибкость React, теперь всё чаще выбирают структуру, масштабируемость и долгосрочную поддержку.
Автор пишет о том, как структура Angular ускоряет разработку, облегчает масштабные рефакторинги, упрощает онбординг новых сотрудников и повышает стабильность приложений. Производительность и интеграция с TypeScript делают фреймворк особенно привлекательным для enterprise-проектов и сложных приложений.
Это всё не про то, что React стал плох, а про то, как Angular решает проблемы команд.
Подробное сравнение здесь: https://medium.com/@satnammca/the-great-frontend-shift-react-to-angular-by-2026-1697c05e860e
Medium
The Great Frontend Shift: React to Angular by 2026
The frontend landscape is experiencing a seismic shift. After nearly a decade of React’s dominance, Angular is making an unexpected…
1🔥7👍4👎1
#blog
Статья о проблеме "превращения всего в массивы JS", что внутри:
Проблема:
Традиционная обработка массивов в JS (через
- Создаются множество промежуточных массивов
- Обрабатываются все элементы, даже если нужны только первые несколько
- Происходит лишняя работа, особенно на больших данных
Пример:
Здесь сначала фильтруются все элементы, потом преобразуются, и только потом берутся первые 10 (и каждая итерация создает новый массив).
Решение:
Использовать итераторы с lazy методами —
Пример с итератором:
Здесь обработка элементов происходит по одному, и останавливается после первых 10 найденных.
Это экономит память и процессорное время.
Польза в UI и асинхронных сценариях:
- Виртуализованные списки
- Бесконечный скролл
- Потоковая обработка данных
- Эффективная работа с большими наборами данных
Важно:
Итераторы не заменяют массивы полностью.
Они не подходят, если нужен прямой доступ к элементам (например, items[5]) или мутации.
Поддержка:
Современные браузеры и Node.js 22+.
Статья - https://allthingssmitty.com/2026/01/12/stop-turning-everything-into-arrays-and-do-less-work-instead/
Статья о проблеме "превращения всего в массивы JS", что внутри:
Проблема:
Традиционная обработка массивов в JS (через
map, filter, slice) — тяжеловесная, потому что:- Создаются множество промежуточных массивов
- Обрабатываются все элементы, даже если нужны только первые несколько
- Происходит лишняя работа, особенно на больших данных
Пример:
const visibleItems = items
.filter(isVisible)
.map(transform)
.slice(0, 10);
Здесь сначала фильтруются все элементы, потом преобразуются, и только потом берутся первые 10 (и каждая итерация создает новый массив).
Решение:
Использовать итераторы с lazy методами —
values(), filter, map, take, toArray.Пример с итератором:
const visibleItems = items
.values()
.filter(isVisible)
.map(transform)
.take(10)
.toArray();
Здесь обработка элементов происходит по одному, и останавливается после первых 10 найденных.
Это экономит память и процессорное время.
Польза в UI и асинхронных сценариях:
- Виртуализованные списки
- Бесконечный скролл
- Потоковая обработка данных
- Эффективная работа с большими наборами данных
Важно:
Итераторы не заменяют массивы полностью.
Они не подходят, если нужен прямой доступ к элементам (например, items[5]) или мутации.
Поддержка:
Современные браузеры и Node.js 22+.
Статья - https://allthingssmitty.com/2026/01/12/stop-turning-everything-into-arrays-and-do-less-work-instead/
Allthingssmitty
Stop turning everything into arrays (and do less work instead) - Matt Smith
Do less work in JavaScript: lazy data pipelines with iterator helpers instead of arrays.
👍4❤1
#blog
В
Кроме того,
Основные причины:
- OnPush давно рекомендовался как лучшая практика.
- Упрощение настройки и поведения фреймворка.
- Поддержка zoneless-режима становится стандартом.
Angular планирует выпустить эти изменения в мае 2026 года в версии v22.
Статья: https://habr.com/ru/news/989852/
В
Angular v22 будет изменена стандартная стратегия обнаружения изменений (Change Detection). Вместо Default по умолчанию будет использоваться OnPush. Это решение направлено на улучшение производительности и соответствие современным практикам разработки без использования Zone.js (zoneless-режим).Кроме того,
ChangeDetectionStrategy.Default будет переименован в ChangeDetectionStrategy.Eager, чтобы точнее отражать своё поведение — агрессивную проверку изменений. Существующие проекты будут автоматически обновлены, и для сохранения прежнего поведения будет использоваться Eager.Основные причины:
- OnPush давно рекомендовался как лучшая практика.
- Упрощение настройки и поведения фреймворка.
- Поддержка zoneless-режима становится стандартом.
Angular планирует выпустить эти изменения в мае 2026 года в версии v22.
Статья: https://habr.com/ru/news/989852/
Хабр
Прощай, Default: Angular меняет стандартную стратегию на OnPush и вводит Eager
Коллеги, привет! От команды Angular пришли отличные новости: в 22-й версии стратегия OnPush станет стандартной. По этому поводу разработчики выпустили новый RFC (Request for Comments). Ниже я...
👍2❤1