Вышел React 19.3: стабилизация View Transitions, Fragment Refs и еще пару полезных фич ⚛️⚡️
React 19.3 стабилизирует View Transitions и Fragment Refs, добавляет browser-only компоненты, Trusted Types и контекст в RSC.

React-команда выкатила свежий релиз React 19.3. Главное событие — экспериментальные фичи, за которыми мы наблюдали в ветках Canary, наконец-то доехали до официального стабильного статуса.
Что важного привезли:
-
Стабилизация
<ViewTransition>API Теперь анимация переходов при монтировании, демонтировании или смене состояния компонентов работает нативно через браузерный View Transitions API.- Анимацию можно кастомизировать через CSS-классы (
:active-view-transition-type) или управлять ею черезaddTransitionTypeпрямо в JS-коде. - Отдельный кайф — глубокая интеграция с
<Suspense>: плейсхолдеры (fallbacks) отображаются мгновенно, а появление реального контента плавно анимируется без мерцаний и задержек.
- Анимацию можно кастомизировать через CSS-классы (
-
Fragment Refs Раньше, чтобы повесить глобальный слушатель событий,
IntersectionObserverили управлять фокусом группы соседних элементов, приходилось оборачивать их в технический<div>. Теперьrefможно прокидывать напрямую в<React.Fragment>/<>— никаких лишних узлов в DOM. -
use(browser())— нативный отказ от SSR для компонентов Появился элегантный способ пометить компонент как browser-only без костылей сuseEffectили проверкиtypeof window !== 'undefined'. -
Поддержка Trusted Types (Защита от XSS) React DOM перестали насильно приводить значения к строкам при передаче в DOM API. Объектные типы Trusted Types (
TrustedHTML,TrustedScript) теперь пролетают сквозь валидацию нативно, позволяя легко соблюдать строгие политикиContent-Security-Policy. -
Контекст напрямую в Server Components Раньше для чтения клиентского контекста внутри RSC требовалось городить клиентские обертки (
Provider). В 19.3 контент из'use client'модулей можно прокидывать и рендерить на сервере напрямую.
Читать подробный анонс в блоге
Уже успели опробовать нативные View Transitions или пока анимируете по старинке через Framer Motion / CSS-классы?