React 19: Асинхронные функции, серверные компоненты и поддержка пользовательских элементов

Команда Meta объявила о выпуске React 19, который стал важным шагом вперёд в развитии этой популярной библиотеки для создания пользовательских интерфейсов. Новый релиз принёс множество новшеств, упрощающих разработку, повышающих производительность и расширяющих функциональные возможности.

Асинхронность и улучшенные функции для форм

Одной из ключевых особенностей React 19 стала поддержка использования асинхронных функций в переходах. Это делает управление состояниями ожидания, обработку ошибок, работу с формами и оптимистичные обновления гораздо проще. Новые хуки — useOptimistic и React.useActionState — позволяют упрощать частые сценарии работы с Actions, устраняя необходимость в сложных ручных настройках.

Кроме того, React 19 предлагает интеграцию Actions с новым функционалом <form> в react-dom, что даёт возможность использовать хук useFormStatus для отслеживания состояния родительской формы как контекста.

Работа с серверными компонентами

Теперь Серверные компоненты и Actions официально включены в React 19. Это позволяет выполнять предварительный рендеринг компонентов на сервере и запускать асинхронные функции для клиентских компонентов. API use помогает считывать ресурсы во время рендеринга, что особенно полезно для статической генерации сайтов.

В react-dom/static появились новые возможности — API prerender и prerenderToNodeStream, которые упрощают процесс предварительного рендеринга.

Поддержка пользовательских элементов и улучшенные рефы

React 19 также принес полную поддержку пользовательских элементов (Custom Elements), успешно пройдя все тесты на Custom Elements Everywhere. Это делает работу с веб-компонентами ещё более гибкой.

Теперь функциям-компонентам доступен ref как проп, что упрощает управление ссылками на элементы. Также появилась поддержка возврата функций очистки (cleanup) из колбэков для рефов, что повышает читаемость и управляемость кода.

Другие новшества

  • Нативная поддержка мета-тегов для документов, включая асинхронные скрипты и предварительную загрузку ресурсов.
  • Улучшенная система отчётности об ошибках, включая детализированное логирование ошибок гидратации в react-dom.
  • Новый <DocumentMetadata /> компонент для управления мета-данными документа.

React 19 — это не просто обновление, а полноценный инструмент для упрощения работы разработчиков и реализации сложных, производительных приложений.

Читайте также
Chrome 121 бета
Chrome 121 бета
Chrome 121 бета

Хром бета доступна с 6 декабря 2023 и последнюю версию можно скачать на официальном сайте Хрома.

Chrome 120 beta
Chrome 120 beta
Chrome 120 beta

Новые 7 фич для CSS. Улучшения для nesting (вложенности стилей). Создание «аккордиона» для через элемент details и многое другое.

Бесплатный инструмент поможет веб-разработчикам разобраться со «сложным» SEO-обновлением Google
Бесплатный инструмент поможет веб-разработчикам разобраться со «сложным» SEO-обновлением Google
Бесплатный инструмент поможет веб-разработчикам разобраться со «сложным» SEO-обновлением Google

Комплексное обновление соответствует более сложному подходу к оценке сайтов для ранжирования.

Google Chrome начал показывать, сколько памяти использует каждая вкладка
Google Chrome начал показывать, сколько памяти использует каждая вкладка
Google Chrome начал показывать, сколько памяти использует каждая вкладка

Браузер Google Chrome на системах с Windows 11 показывает, сколько оперативной памяти использует каждая вкладка.