React 19: Асинхронные функции, серверные компоненты и поддержка пользовательских элементов
Команда Meta объявила о выпуске React 19, который стал важным шагом вперёд в развитии этой популярной библиотеки для создания пользовательских интерфейсов. Новый релиз принёс множество новшеств, упрощающих разработку, повышающих производительность и расширяющих функциональные возможности.
просмотры 108🕑 3 мин. чтения
Асинхронность и улучшенные функции для форм
Одной из ключевых особенностей 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 — это не просто обновление, а полноценный инструмент для упрощения работы разработчиков и реализации сложных, производительных приложений.