|
| 1 | +## 19.2.0 (October 1st, 2025) |
| 2 | + |
| 3 | +Below is a list of all new features, APIs, and bug fixes. |
| 4 | + |
| 5 | +Read React 19.2 release post [todo: link] for more information. |
| 6 | + |
| 7 | +### New Features |
| 8 | + |
| 9 | +#### React |
| 10 | + |
| 11 | +- [`<Activity>`](https://react.dev/reference/react/Activity): A new API to hide and restore the UI and internal state of its children. |
| 12 | +- [`useEffectEvent`](https://react.dev/reference/react/useEffectEvent) is a React Hook that lets you extract non-reactive logic into an [Effect Event](https://react.dev/learn/separating-events-from-effects#declaring-an-effect-event). |
| 13 | +- [`cacheSignal`](https://react.dev/reference/react/cacheSignal) allows you to know when the `cache()` life time is over. |
| 14 | +- [React Performance tracks](https://react.dev/reference/developer-tooling/react-performance-tracks) are specialized custom entries that appear on the Performance panel’s timeline in your browser developer tools |
| 15 | + |
| 16 | +#### React DOM Server |
| 17 | + |
| 18 | +- Added APIs for partial prerendering: |
| 19 | + - [`prerender`](https://react.dev/reference/react-dom/static/prerender) and [`prerenderToNodeStream`](https://react.dev/reference/react-dom/static/prerenderToNodeStream) now return a `postponed` property that can be passed into [`resume`](https://react.dev/reference/react-dom/server/resume) or [resumeToPipeableStream](https://react.dev/reference/react-dom/server/resumeToPipeableStream) to resume the previously unfinished prerender. |
| 20 | + - [`resumeAndPrerender`](https://react.dev/reference/react-dom/static/resumeAndPrerender) and [`resumeAndPrerenderToNodeStream`](https://react.dev/reference/react-dom/static/resumeAndPrerenderToNodeStream) can be used to continue prerendering a previously unfinished prerender |
| 21 | + |
| 22 | +### Bug Fixes |
| 23 | + |
| 24 | +#### React DOM Server |
| 25 | + |
| 26 | +- 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 (@sebmarkbage [#33076](https://github.com/facebook/react/pull/33076), [#34230](https://github.com/facebook/react/pull/34230), [#33463](https://github.com/facebook/react/pull/33463)). |
| 27 | +- Block on Suspensey Fonts during reveal of server-side-rendered content |
| 28 | + |
| 29 | +### Notable changes |
| 30 | + |
| 31 | +- Use underscore instead of `:` IDs generated by useId |
| 32 | +- Add Node Web Streams (`prerender`, `renderToReadableStream`) to server-side-rendering APIs for Node.js |
| 33 | + |
| 34 | +### All Changes |
| 35 | + |
| 36 | +#### React |
| 37 | + |
| 38 | +- `<Activity />` was developed over many years, starting before `ClassComponent.setState` (@acdlite @sebmarkbage and many others) |
| 39 | +- Stringify context as "SomeContext" instead of "SomeContext.Provider" (@kassens [#33507](https://github.com/facebook/react/pull/33507)) |
| 40 | +- Include stack of cause of React instrumentation errors with `%o` placeholder (@eps1lon [#34198](https://github.com/facebook/react/pull/34198)) |
| 41 | +- Fix infinite `useDeferredValue` loop in popstate event (@acdlite [#32821](https://github.com/facebook/react/pull/32821)) |
| 42 | +- Fix a bug when an initial value was passed to `useDeferredValue` (@acdlite [#34376](https://github.com/facebook/react/pull/34376)) |
| 43 | +- Fix a crash when submitting forms with Client Actions (@sebmarkbage [#33055](https://github.com/facebook/react/pull/33055)) |
| 44 | +- Hide/unhide the content of dehydrated suspense boundaries if they resuspend (@sebmarkbage [#32900](https://github.com/facebook/react/pull/32900)) |
| 45 | +- Avoid stack overflow on wide trees during Hot Reload (@sophiebits [#34145](https://github.com/facebook/react/pull/34145)) |
| 46 | +- Improve Owner and Component stacks in various places (@sebmarkbage, @eps1lon: [#33629](https://github.com/facebook/react/pull/33629), [#33724](https://github.com/facebook/react/pull/33724), [#32735](https://github.com/facebook/react/pull/32735), [#33723](https://github.com/facebook/react/pull/33723)) |
| 47 | +- Add `cacheSignal` (@sebmarkbage [#33557](https://github.com/facebook/react/pull/33557)) |
| 48 | + |
| 49 | +#### React DOM |
| 50 | + |
| 51 | +- Block on Suspensey Fonts during reveal of server-side-rendered content (@sebmarkbage [#33342](https://github.com/facebook/react/pull/33342)) |
| 52 | +- Use underscore instead of `:` for IDs generated by `useId` (@sebmarkbage, @eps1lon: [#32001](https://github.com/facebook/react/pull/32001), [https://github.com/facebook/react/pull/33342](https://github.com/facebook/react/pull/33342)[#33099](https://github.com/facebook/react/pull/33099), [#33422](https://github.com/facebook/react/pull/33422)) |
| 53 | +- Stop warning when ARIA 1.3 attributes are used (@Abdul-Omira [#34264](https://github.com/facebook/react/pull/34264)) |
| 54 | +- Allow `nonce` to be used on hoistable styles (@Andarist [#32461](https://github.com/facebook/react/pull/32461)) |
| 55 | +- Warn for using a React owned node as a Container if it also has text content (@sebmarkbage [#32774](https://github.com/facebook/react/pull/32774)) |
| 56 | +- s/HTML/text for for error messages if text hydration mismatches (@rickhanlonii [#32763](https://github.com/facebook/react/pull/32763)) |
| 57 | +- Fix a bug with `React.use` inside `React.lazy`\-ed Component (@hi-ogawa [#33941](https://github.com/facebook/react/pull/33941)) |
| 58 | +- Enable the `progressiveChunkSize` option for server-side-rendering APIs (@sebmarkbage [#33027](https://github.com/facebook/react/pull/33027)) |
| 59 | +- Fix a bug with deeply nested Suspense inside Suspense fallback when server-side-rendering (@gnoff [#33467](https://github.com/facebook/react/pull/33467)) |
| 60 | +- Avoid hanging when suspending after aborting while rendering (@gnoff [#34192](https://github.com/facebook/react/pull/34192)) |
| 61 | +- Add Node Web Streams to server-side-rendering APIs for Node.js (@sebmarkbage [#33475](https://github.com/facebook/react/pull/33475)) |
| 62 | + |
| 63 | +#### React Server Components |
| 64 | + |
| 65 | +- Preload `<img>` and `<link>` using hints before they're rendered (@sebmarkbage [#34604](https://github.com/facebook/react/pull/34604)) |
| 66 | +- Log error if production elements are rendered during development (@eps1lon [#34189](https://github.com/facebook/react/pull/34189)) |
| 67 | +- Fix a bug when returning a Temporary reference (e.g. a Client Reference) from Server Functions (@sebmarkbage [#34084](https://github.com/facebook/react/pull/34084), @denk0403 [#33761](https://github.com/facebook/react/pull/33761)) |
| 68 | +- Pass line/column to `filterStackFrame` (@eps1lon [#33707](https://github.com/facebook/react/pull/33707)) |
| 69 | +- Support Async Modules in Turbopack Server References (@lubieowoce [#34531](https://github.com/facebook/react/pull/34531)) |
| 70 | +- Add support for .mjs file extension in Webpack (@jennyscript [#33028](https://github.com/facebook/react/pull/33028)) |
| 71 | +- Fix a wrong missing key warning (@unstubbable [#34350](https://github.com/facebook/react/pull/34350)) |
| 72 | +- Make console log resolve in predictable order (@sebmarkbage [#33665](https://github.com/facebook/react/pull/33665)) |
| 73 | + |
| 74 | +#### React Reconciler |
| 75 | + |
| 76 | +- [createContainer](https://github.com/facebook/react/blob/v19.2.0/packages/react-reconciler/src/ReactFiberReconciler.js#L255-L261) and [createHydrationContainer](https://github.com/facebook/react/blob/v19.2.0/packages/react-reconciler/src/ReactFiberReconciler.js#L305-L312) had their parameter order adjusted after `on*` handlers to account for upcoming experimental APIs |
| 77 | + |
1 | 78 | ## 19.1.1 (July 28, 2025) |
2 | 79 |
|
3 | 80 | ### React |
|
0 commit comments