✨ Я ненавижу React
В статье разбираются конкретные технические моменты: почему render() не рендерит, почему useCallback не избавляет от лишних аллокаций, зачем нужна кросс-браузерная нормализация с синтетическими событиями в 2025 году, когда стандарт событий давно единый? Отдельное внимание новому компилятору, который кеширует геттеры и меняет поведение JavaScript.
Вышел откровенный разбор проблем популярного фреймворка. Хуки, компилятор и архитектурные решения, которые вызывают вопросы.
А что думаешь ты? Поделись в комментариях: любишь React за его экосистему или уже устал от его ограничений? Может, нашел альтернативу, которая решает эти и другие проблемы? 😉
👉 https://habr.com/ru/articles/959358/
В статье разбираются конкретные технические моменты: почему render() не рендерит, почему useCallback не избавляет от лишних аллокаций, зачем нужна кросс-браузерная нормализация с синтетическими событиями в 2025 году, когда стандарт событий давно единый? Отдельное внимание новому компилятору, который кеширует геттеры и меняет поведение JavaScript.
Вышел откровенный разбор проблем популярного фреймворка. Хуки, компилятор и архитектурные решения, которые вызывают вопросы.
А что думаешь ты? Поделись в комментариях: любишь React за его экосистему или уже устал от его ограничений? Может, нашел альтернативу, которая решает эти и другие проблемы? 😉
👉 https://habr.com/ru/articles/959358/
😁26💯20👍7🔥2❤1
✨ Рефакторинг формы на Signal Form
В статье разбирается миграция на новые Signal Forms — экспериментальную фичу, которая появится в Angular 21.
В отличие от Template Driven Forms, новый API ближе к Reactive Forms, но вместо Observables использует Signals, что обеспечивает лучшую интеграцию с новой реактивной моделью Angular.
👉 https://timdeschryver.dev/blog/refactoring-a-form-to-a-signal-form
В статье разбирается миграция на новые Signal Forms — экспериментальную фичу, которая появится в Angular 21.
В отличие от Template Driven Forms, новый API ближе к Reactive Forms, но вместо Observables использует Signals, что обеспечивает лучшую интеграцию с новой реактивной моделью Angular.
👉 https://timdeschryver.dev/blog/refactoring-a-form-to-a-signal-form
✍6👍5🔥4👏2❤1
✨ Ускоряем Angular: 20 советов по оптимизации
Новая серия статей собрала 20 практических рекомендаций по четырем ключевым направлениям: рендеринг, реактивность, ассеты и стилизация, сборка и диагностика.
Среди главных советов: переход на новый синтаксис control flow, использование отложенных представлений (
👉 https://medium.com/ngconf/20-ways-to-make-your-angular-apps-run-faster-part-1-rendering-optimizations-51d16425bd0e
Новая серия статей собрала 20 практических рекомендаций по четырем ключевым направлениям: рендеринг, реактивность, ассеты и стилизация, сборка и диагностика.
Среди главных советов: переход на новый синтаксис control flow, использование отложенных представлений (
@defer), миграция на сигналы и Zoneless, оптимизация изображений через NgOptimizedImage, переход на нативные CSS-анимации вместо @angular/animations, настройка билд-системы на базе Vite и esbuild.👉 https://medium.com/ngconf/20-ways-to-make-your-angular-apps-run-faster-part-1-rendering-optimizations-51d16425bd0e
👍10🔥6❤2
✨ Angular официально выбирает Vitest
Команда Angular наконец определилась с будущим фреймворком для тестирования, положив конец спорам, что использовать в новых проектах вместо связки Karma и Jasmine.
Начиная с Angular 21, Vitest станет тестовым фреймворком по умолчанию. Самое важное в этом решении, не сам Vitest, а то, что наконец-то появилась определенность. Теперь у новых проектов есть четкий вектор развития, а это снимает головную боль при выборе инструментов. При этом возможность выбрать Karma сохранится.
👉 https://github.com/angular/angular-cli/pull/31578
Команда Angular наконец определилась с будущим фреймворком для тестирования, положив конец спорам, что использовать в новых проектах вместо связки Karma и Jasmine.
Начиная с Angular 21, Vitest станет тестовым фреймворком по умолчанию. Самое важное в этом решении, не сам Vitest, а то, что наконец-то появилась определенность. Теперь у новых проектов есть четкий вектор развития, а это снимает головную боль при выборе инструментов. При этом возможность выбрать Karma сохранится.
👉 https://github.com/angular/angular-cli/pull/31578
🔥29👍8🤪3❤1
✨ Как сделать селектор вариантов доступным для всех пользователей
Веб-доступность часто игнорируют, считая ее второстепенной. Но на практике правильная семантика HTML делает продукт лучше для всех: пользователей с особыми потребностями, разработчиков и SEO.
Статья разбирает типичный селектор вариантов, показывая, как изначальный подход на <img> ломает клавиатурную навигацию, и предлагает семантическую разметку на базе <fieldset> и радиокнопок с поддержкой клавиатуры и скринридеров.
👉 https://angular.love/case-study-building-an-accessible-variant-selector
Веб-доступность часто игнорируют, считая ее второстепенной. Но на практике правильная семантика HTML делает продукт лучше для всех: пользователей с особыми потребностями, разработчиков и SEO.
Статья разбирает типичный селектор вариантов, показывая, как изначальный подход на <img> ломает клавиатурную навигацию, и предлагает семантическую разметку на базе <fieldset> и радиокнопок с поддержкой клавиатуры и скринридеров.
👉 https://angular.love/case-study-building-an-accessible-variant-selector
❤3👍2
✨ Мощь Intl API
Интернационализация — это не просто перевод интерфейса. Это корректное форматирование дат, чисел, валют, списков и даже множественных чисел с учетом культурных особенностей пользователя.
Вместо тяжелых библиотек уже давно существует нативное решение Intl API.
Intl покрывает почти все задачи локализации:
🕒 Intl.DateTimeFormat форматирует дату и время,
💰 Intl.NumberFormat работает с валютами и единицами,
📋 Intl.ListFormat строит естественные списки,
⏳ Intl.RelativeTimeFormat выводит время “вчера” или “через 3 дня”,
🗣 Intl.PluralRules помогает в работе с множественными числами,
🔤 Intl.Collator сравнивает строки с учетом языковых особенностей,
⚙️ и многое другое.
Intl поддерживается всеми современными браузерами и позволяет избавиться от громоздких зависимостей, сохранив при этом корректное отображение данных для любой аудитории.
👉 https://habr.com/ru/companies/timeweb/articles/939690/
Интернационализация — это не просто перевод интерфейса. Это корректное форматирование дат, чисел, валют, списков и даже множественных чисел с учетом культурных особенностей пользователя.
Вместо тяжелых библиотек уже давно существует нативное решение Intl API.
Intl покрывает почти все задачи локализации:
🕒 Intl.DateTimeFormat форматирует дату и время,
💰 Intl.NumberFormat работает с валютами и единицами,
📋 Intl.ListFormat строит естественные списки,
⏳ Intl.RelativeTimeFormat выводит время “вчера” или “через 3 дня”,
🗣 Intl.PluralRules помогает в работе с множественными числами,
🔤 Intl.Collator сравнивает строки с учетом языковых особенностей,
⚙️ и многое другое.
Intl поддерживается всеми современными браузерами и позволяет избавиться от громоздких зависимостей, сохранив при этом корректное отображение данных для любой аудитории.
👉 https://habr.com/ru/companies/timeweb/articles/939690/
👍14❤5
✨ Аутентификация в Angular с помощью cookies за 10 минут
Аутентификация на основе cookies — простое и эффективное решение, если вам не нужен полностью токен-ориентированный подход.
Статья показывает, как за пару шагов настроить cookie-аутентификацию: получить CSRF-токен, настроить interceptors, обработать истекшие сессии, защитить роуты, а также разобраны нюансы работы с SSR.
Важный момент: не забудьте корректно настроить атрибут SameSite для cookies, автор, к сожалению, это упустил.
👉 https://dev.to/this-is-angular/angular-authentication-with-cookies-in-10-minutes-41m8
Аутентификация на основе cookies — простое и эффективное решение, если вам не нужен полностью токен-ориентированный подход.
Статья показывает, как за пару шагов настроить cookie-аутентификацию: получить CSRF-токен, настроить interceptors, обработать истекшие сессии, защитить роуты, а также разобраны нюансы работы с SSR.
Важный момент: не забудьте корректно настроить атрибут SameSite для cookies, автор, к сожалению, это упустил.
👉 https://dev.to/this-is-angular/angular-authentication-with-cookies-in-10-minutes-41m8
👍4🔥3❤🔥1