Release date:
October 1, 2025
Magnitude:
61,433
Diff Delta
Contributors:
41 total committers
309 Features Released with v19.2.0
Browse Other Releases
Latest Pending
Unreleased π
v19.2.0
Released October 1, 2025
61,433 Ξ
v19.1.1
Released July 24, 2025
129 Ξ
v19.1.0
Released June 13, 2025
88,251 Ξ
v19.0.0
Released November 14, 2024
0 Ξ
v18.3.1
Released April 26, 2024
15 Ξ
v18.3.0
Released April 25, 2024
0 Ξ
v18.2.0
Released June 8, 2022
8,515 Ξ
v18.1.0
Released April 26, 2022
9,406 Ξ
v18.0.0
Released April 14, 2022
61,369 Ξ
v17.0.2
Released March 22, 2021
335 Ξ
Top Contributors in v19.2.0
Release Notes Published
Below is a list of all new features, APIs, and bug fixes.
Read the React 19.2 release post for more information.
New React Features
New React DOM Features
- Added resume APIs for partial pre-rendering with Web Streams:
- Added resume APIs for partial pre-rendering with Node Streams:
- Updated
prerender
APIs to return a postponed
state that can be passed to the resume
APIs.
Notable changes
- React DOM now batches suspense boundary reveals, matching the behavior of client side rendering. This change is especially noticeable when animating the reveal of Suspense boundaries e.g. with the upcoming
<ViewTransition>
Component. React will batch as much reveals as possible before the first paint while trying to hit popular first-contentful paint metrics.
- Add Node Web Streams (
prerender
, renderToReadableStream
) to server-side-rendering APIs for Node.js
- Use underscore instead of
:
IDs generated by useId
All Changes
React
<Activity />
was developed over many years, starting before ClassComponent.setState
(@acdlite @sebmarkbage and many others)
- Stringify context as "SomeContext" instead of "SomeContext.Provider" (@kassens #33507)
- Include stack of cause of React instrumentation errors with
%o
placeholder (@eps1lon #34198)
- Fix infinite
useDeferredValue
loop in popstate event (@acdlite #32821)
- Fix a bug when an initial value was passed to
useDeferredValue
(@acdlite #34376)
- Fix a crash when submitting forms with Client Actions (@sebmarkbage #33055)
- Hide/unhide the content of dehydrated suspense boundaries if they resuspend (@sebmarkbage #32900)
- Avoid stack overflow on wide trees during Hot Reload (@sophiebits #34145)
- Improve Owner and Component stacks in various places (@sebmarkbage, @eps1lon: #33629, #33724, #32735, #33723)
- Add
cacheSignal
(@sebmarkbage #33557)
React DOM
- Block on Suspensey Fonts during reveal of server-side-rendered content (@sebmarkbage #33342)
- Use underscore instead of
:
for IDs generated by useId
(@sebmarkbage, @eps1lon: #32001, https://github.com/facebook/react/pull/33342#33099, #33422)
- Stop warning when ARIA 1.3 attributes are used (@Abdul-Omira #34264)
- Allow
nonce
to be used on hoistable styles (@Andarist #32461)
- Warn for using a React owned node as a Container if it also has text content (@sebmarkbage #32774)
- s/HTML/text for for error messages if text hydration mismatches (@rickhanlonii #32763)
- Fix a bug with
React.use
inside React.lazy
-ed Component (@hi-ogawa #33941)
- Enable the
progressiveChunkSize
option for server-side-rendering APIs (@sebmarkbage #33027)
- Fix a bug with deeply nested Suspense inside Suspense fallback when server-side-rendering (@gnoff #33467)
- Avoid hanging when suspending after aborting while rendering (@gnoff #34192)
- Add Node Web Streams to server-side-rendering APIs for Node.js (@sebmarkbage #33475)
React Server Components
- Preload
<img>
and <link>
using hints before they're rendered (@sebmarkbage #34604)
- Log error if production elements are rendered during development (@eps1lon #34189)
- Fix a bug when returning a Temporary reference (e.g. a Client Reference) from Server Functions (@sebmarkbage #34084, @denk0403 #33761)
- Pass line/column to
filterStackFrame
(@eps1lon #33707)
- Support Async Modules in Turbopack Server References (@lubieowoce #34531)
- Add support for .mjs file extension in Webpack (@jennyscript #33028)
- Fix a wrong missing key warning (@unstubbable #34350)
- Make console log resolve in predictable order (@sebmarkbage #33665)
React Reconciler
Note: Version 6.0.0 was mistakenly released and immediately deprecated and untagged on npm. This is the first official 6.x major release and includes breaking changes.
- Breaking: Require Node.js 18 or newer. (@michaelfaith in #32458)
- Breaking: Flat config is now the default
recommended
preset. Legacy config moved to recommended-legacy
. (@michaelfaith in #32457)
- New Violations: Disallow calling
use
within try/catch blocks. (@poteto in #34040)
- New Violations: Disallow calling
useEffectEvent
functions in arbitrary closures. (@jbrown215 in #33544)
- Handle
React.useEffect
in addition to useEffect
in rules-of-hooks. (@Ayc0 in #34076)
- Added
react-hooks
settings config option that to accept additionalEffectHooks
that are used across exhaustive-deps and rules-of-hooks rules. (@jbrown215) in #34497