v19.2.0
Breaking Changes📦 reactView on GitHub →
⚠ 4 breaking✨ 9 features🐛 9 fixes⚡ 1 deprecations🔧 14 symbols
Summary
React 19.2 introduces the <Activity> component, useEffectEvent hook, and new resume APIs for partial pre-rendering. It also includes significant updates to the ESLint plugin and changes the ID generation format for useId.
⚠️ Breaking Changes
- eslint-plugin-react-hooks now requires Node.js 18 or newer.
- eslint-plugin-react-hooks 'recommended' preset now uses Flat config. Legacy config users must switch to 'recommended-legacy'.
- useId now generates IDs using underscores instead of colons, which may affect CSS selectors or tests relying on the specific ID format.
- react-reconciler: createContainer and createHydrationContainer had their parameter order adjusted.
Migration Steps
- Update ESLint configuration to use 'recommended-legacy' if you are not yet using Flat config.
- Update CSS selectors or automation scripts that depend on useId generating colon-based IDs (e.g., :r0: to _r0_).
- Update custom reconcilers using createContainer or createHydrationContainer to match the new parameter order.
✨ New Features
- <Activity>: New API to hide/restore UI and internal state of children.
- useEffectEvent: New Hook to extract non-reactive logic into Effect Events.
- cacheSignal: New RSC API to detect when cache() lifetime ends.
- React Performance tracks: New timeline integration for browser developer tools.
- Partial Pre-rendering (PPR) Resume APIs: Added resume, resumeAndPrerender (Web Streams) and resumeToPipeableStream, resumeAndPrerenderToNodeStream (Node Streams).
- Node Web Streams support (prerender, renderToReadableStream) added to SSR APIs for Node.js.
- React DOM now batches suspense boundary reveals to match client-side behavior.
- Added support for .mjs file extension in Webpack for RSC.
- Support for Async Modules in Turbopack Server References.
🐛 Bug Fixes
- Fix infinite useDeferredValue loop in popstate event.
- Fix crash when submitting forms with Client Actions.
- Fix useDeferredValue bug when an initial value was passed.
- Fix React.use inside React.lazy-ed components.
- Fix hanging when suspending after aborting while rendering.
- Fix bug when returning Client References from Server Functions.
- Fix stack overflow on wide trees during Hot Reload.
- Fix missing key warning in RSC.
- Stop warning for ARIA 1.3 attributes.
🔧 Affected Symbols
ActivityuseEffectEventcacheSignalresumeresumeAndPrerenderresumeToPipeableStreamresumeAndPrerenderToNodeStreamprerenderuseIduseDeferredValuecreateContainercreateHydrationContainerrenderToReadableStreamuse⚡ Deprecations
- eslint-plugin-react-hooks version 6.0.0 was deprecated and replaced by 6.1.0.