Free, open-source JavaScript library maintained by Meta (Facebook) and a community of developers
Update Jun 8, 2026 tracked by Updatify
19.2.0 (October 1st, 2025)
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
-
<Activity>: A new API to hide and restore the UI and internal state of its children. -
useEffectEventis a React Hook that lets you extract non-reactive logic into an Effect Event. -
cacheSignal(for RSCs) lets your know when thecache()lifetime is over. - React Performance tracks appear on the Performance panel’s timeline in your browser developer tools
New React DOM Features
-
Added resume APIs for partial pre-rendering with Web Streams:
-
resume: to resume a prerender to a stream. -
resumeAndPrerender: to resume a prerender to HTML.
-
-
Added resume APIs for partial pre-rendering with Node Streams:
-
resumeToPipeableStream: to resume a prerender to a stream.
-
Update Jun 29, 2026 tracked by Updatify
19.2.4 (Jan 26, 2026)
React Server Components
- Add more DoS mitigations to Server Actions, and harden Server Components (@gnoff, @lubieowoce, @sebmarkbage, @unstubbable #35632)
Update Jun 8, 2026 tracked by Updatify
19.1.0 (March 28, 2025)
Owner Stack
An Owner Stack is a string representing the components that are directly responsible for rendering a particular component. You can log Owner Stacks when debugging or use Owner Stacks to enhance error overlays or other development tools. Owner Stacks are only available in development builds. Component Stacks in production are unchanged.
- An Owner Stack is a development-only stack trace that helps identify which components are responsible for rendering a particular component. An Owner Stack is distinct from a Component Stacks, which shows the hierarchy of components leading to an error.
- The captureOwnerStack API is only available in development mode and returns a Owner Stack, if available. The API can be used to enhance error overlays or log component relationships when debugging. #29923, #32353, #30306, #32538, #32529, #32538
React
Update Jun 8, 2026 tracked by Updatify
19.0.0 (December 5, 2024)
Below is a list of all new features, APIs, deprecations, and breaking changes. Read React 19 release post and React 19 upgrade guide for more information.
Note: To help make the upgrade to React 19 easier, we’ve published a react@18.3 release that is identical to 18.2 but adds warnings for deprecated APIs and other changes that are needed for React 19. We recommend upgrading to React 18.3.1 first to help identify any issues before upgrading to React 19.
New Features
React
-
Actions:
startTransitioncan now accept async functions. Functions passed tostartTransitionare called “Actions”. A given Transition can include one or more Actions which update state in the background and update the UI with one commit. In addition to updating state, Actions can now perform side effects including async requests, and the Action will wait for the work to finish before finishing the Transition. This feature allows Transitions to include side effects likefetch()in the pending state, and provides support for error handling, and optimistic updates.
Update Jun 8, 2026 tracked by Updatify
18.3.0 (April 25, 2024)
This release is identical to 18.2 but adds warnings for deprecated APIs and other changes that are needed for React 19.
Read the React 19 Upgrade Guide for more info.
React
-
Allow writing to
this.refsto support string ref codemod 909071 -
Warn for deprecated
findDOMNodeoutside StrictMode c3b283 -
Warn for deprecated
test-utilsmethods d4ea75 - Warn for deprecated Legacy Context outside StrictMode 415ee0
- Warn for deprecated string refs outside StrictMode #25383
-
Warn for deprecated
defaultPropsfor function components #25699 -
Warn when spreading
key#25697 -
Warn when using
actfromtest-utilsd4ea75
React DOM
-
Warn for deprecated
unmountComponentAtNode8a015b
Update Jun 8, 2026 tracked by Updatify
18.2.0 (June 14, 2022)
React DOM
-
Provide a component stack as a second argument to
onRecoverableError. (@gnoff in #24591) -
Fix hydrating into
documentcausing a blank page on mismatch. (@gnoff in #24523) - Fix false positive hydration errors with Suspense. (@gnoff in #24480 and @acdlite in #24532)
-
Fix ignored
setStatein Safari when adding an iframe. (@gaearon in #24459)
React DOM Server
Update Jun 8, 2026 tracked by Updatify
18.1.0 (April 26, 2022)
React DOM
-
Fix the false positive warning about
react-dom/clientwhen using UMD bundle. (@alireza-molaee in #24274) -
Fix
suppressHydrationWarningto work in production too. (@gaearon in #24271) -
Fix
componentWillUnmountfiring twice inside of Suspense. (@acdlite in #24308) - Fix some transition updates being ignored. (@acdlite in #24353)
-
Fix
useDeferredValuecausing an infinite loop when passed an unmemoized value. (@acdlite in #24247) - Fix throttling of revealing Suspense fallbacks. (@sunderls in #24253)
- Fix an inconsistency in whether the props object is the same between renders. (@Andarist and @acdlite in #24421)
-
Fix a missing warning about a
setStateloop inuseEffect. (@gaearon in #24298)
Update Jun 29, 2026 tracked by Updatify
19.1.5 (Jan 26, 2026)
React Server Components
- Add more DoS mitigations to Server Actions, and harden Server Components (@gnoff, @lubieowoce, @sebmarkbage, @unstubbable #35632)
Update Jun 8, 2026 tracked by Updatify
18.0.0 (March 29, 2022)
Below is a list of all new features, APIs, deprecations, and breaking changes. Read React 18 release post and React 18 upgrade guide for more information.
New Features
React
-
useIdis a new hook for generating unique IDs on both the client and server, while avoiding hydration mismatches. It is primarily useful for component libraries integrating with accessibility APIs that require unique IDs. This solves an issue that already exists in React 17 and below, but it’s even more important in React 18 because of how the new streaming server renderer delivers HTML out-of-order. -
startTransitionanduseTransitionlet you mark some state updates as not urgent. Other state updates are considered urgent by default. React will allow urgent state updates (for example, updating a text input) to interrupt non-urgent state updates (for example, rendering a list of search results). -
useDeferredValuelets you defer re-rendering a non-urgent part of the tree. It is similar to debouncing, but has a few advantages compared to it. There is no fixed time delay, so React will attempt the deferred render right after the first render is reflected on the screen. The deferred render is interruptible and doesn’t block user input.
Update Jun 8, 2026 tracked by Updatify
Deprecations
-
react-dom:ReactDOM.renderhas been deprecated. Using it will warn and run your app in React 17 mode. -
react-dom:ReactDOM.hydratehas been deprecated. Using it will warn and run your app in React 17 mode. -
react-dom:ReactDOM.unmountComponentAtNodehas been deprecated. -
react-dom:ReactDOM.renderSubtreeIntoContainerhas been deprecated. -
react-dom/server:ReactDOMServer.renderToNodeStreamhas been deprecated.
Update Jun 8, 2026 tracked by Updatify
Breaking Changes
React
-
Automatic batching: This release introduces a performance improvement that changes to the way React batches updates to do more batching automatically. See Automatic batching for fewer renders in React 18 for more info. In the rare case that you need to opt out, wrap the state update in
flushSync. - Stricter Strict Mode: In the future, React will provide a feature that lets components preserve state between unmounts. To prepare for it, React 18 introduces a new development-only check to Strict Mode. React will automatically unmount and remount every component, whenever a component mounts for the first time, restoring the previous state on the second mount. If this breaks your app, consider removing Strict Mode until you can fix the components to be resilient to remounting with existing state.
- Consistent useEffect timing: React now always synchronously flushes effect functions if the update was triggered during a discrete user input event such as a click or a keydown event. Previously, the behavior wasn’t always predictable or consistent.
Update Jun 8, 2026 tracked by Updatify
Notable Changes
React
-
Components can now render
undefined: React no longer throws if you returnundefinedfrom a component. This makes the allowed component return values consistent with values that are allowed in the middle of a component tree. We suggest to use a linter to prevent mistakes like forgetting areturnstatement before JSX. -
In tests,
actwarnings are now opt-in: If you’re running end-to-end tests, theactwarnings are unnecessary. We’ve introduced an opt-in mechanism so you can enable them only for unit tests where they are useful and beneficial. -
No warning about
setStateon unmounted components: Previously, React warned about memory leaks when you callsetStateon an unmounted component. This warning was added for subscriptions, but people primarily run into it in scenarios where setting state is fine, and workarounds make the code worse. We’ve removed this warning.
Update Jun 8, 2026 tracked by Updatify
17.0.1 (October 22, 2020)
Update Jun 8, 2026 tracked by Updatify
17.0.0 (October 20, 2020)
Today, we are releasing React 17!
Learn more about React 17 and how to update to it on the official React blog.
React
-
Add
react/jsx-runtimeandreact/jsx-dev-runtimefor the new JSX transform. (@lunaruan in #18299) - Build component stacks from native error frames. (@sebmarkbage in #18561)
-
Allow to specify
displayNameon context for improved stacks. (@eps1lon in #18224) -
Prevent
'use strict'from leaking in the UMD bundles. (@koba04 in #19614) -
Stop using
fb.mefor redirects. (@cylim in #19598)
React DOM
Update Jun 8, 2026 tracked by Updatify
16.14.0 (October 14, 2020)
React
- Add support for the new JSX transform. (@lunaruan in #18299)
Update Jun 29, 2026 tracked by Updatify
19.0.4 (Jan 26, 2026)
React Server Components
- Add more DoS mitigations to Server Actions, and harden Server Components (@gnoff, @lubieowoce, @sebmarkbage, @unstubbable #35632)
Update Jun 8, 2026 tracked by Updatify
16.13.1 (March 19, 2020)
React DOM
- Fix bug in legacy mode Suspense where effect clean-up functions are not fired. This only affects users who use Suspense for data fetching in legacy mode, which is not technically supported. (@acdlite in #18238)
-
Revert warning for cross-component updates that happen inside class render lifecycles (
componentWillReceiveProps,shouldComponentUpdate, and so on). (@gaearon in #18330)
Update Jun 8, 2026 tracked by Updatify
16.13.0 (February 26, 2020)
React
- Warn when a string ref is used in a manner that’s not amenable to a future codemod (@lunaruan in #17864)
-
Deprecate
React.createFactory()(@trueadm in #17878)
React DOM
-
Warn when changes in
stylemay cause an unexpected collision (@sophiebits in #14181, #18002) - Warn when a function component is updated during another component’s render phase (@acdlite in #17099)
-
Deprecate
unstable_createPortal(@trueadm in #17880) -
Fix
onMouseEnterbeing fired on disabled buttons (@AlfredoGJ in #17675) -
Call
shouldComponentUpdatetwice when developing inStrictMode(@bvaughn in #17942) -
Add
versionproperty to ReactDOM (@ealush in #15780)
Update Jun 8, 2026 tracked by Updatify
16.10.1 (September 28, 2019)
React DOM
- Fix regression in Next.js apps by allowing Suspense mismatch during hydration to silently proceed (@sebmarkbage in #16943)
Update Jun 8, 2026 tracked by Updatify
16.10.0 (September 27, 2019)
React DOM
- Fix edge case where a hook update wasn’t being memoized. (@sebmarkbage in #16359)
- Fix heuristic for determining when to hydrate, so we don’t incorrectly hydrate during an update. (@sebmarkbage in #16739)
- Clear additional fiber fields during unmount to save memory. (@trueadm in #16807)
- Fix bug with required text fields in Firefox. (@halvves in #16578)
-
Prefer
Object.isinstead of inline polyfill, when available. (@ku8ar in #16212) - Fix bug when mixing Suspense and error handling. (@acdlite in #16801)
Scheduler (Experimental)
- Improve queue performance by switching its internal data structure to a min binary heap. (@acdlite in #16245)
-
Use
postMessageloop with short intervals instead of attempting to align to frame boundaries withrequestAnimationFrame. (@acdlite in #16214)
useSubscription
Update Jun 8, 2026 tracked by Updatify
16.9.0 (August 8, 2019)
React
-
Add
<React.Profiler>API for gathering performance measurements programmatically. (@bvaughn in #15172) -
Remove
unstable_ConcurrentModein favor ofunstable_createRoot. (@acdlite in #15532)
React DOM
-
Deprecate old names for the
UNSAFE_*lifecycle methods. (@bvaughn in #15186 and @threepointone in #16103) -
Deprecate
javascript:URLs as a common attack surface. (@sebmarkbage in #15047) - Deprecate uncommon “module pattern” (factory) components. (@sebmarkbage in #15145)
-
Add support for the
disablePictureInPictureattribute on<video>. (@eek in #15334) -
Add support for
onLoadevent for<embed>. (@cherniavskii in #15614) -
Add support for editing
useStatestate from DevTools. (@bvaughn in #14906)
Update Jun 8, 2026 tracked by Updatify
16.8.5 (March 22, 2019)
React DOM
-
Don’t set the first option as selected in select tag with
sizeattribute. (@kulek1 in #14242) -
Improve the
useEffect(async () => ...)warning message. (@gaearon in #15118) - Improve the error message sometimes caused by duplicate React. (@jaredpalmer in #15139)
React DOM Server
React Shallow Renderer
Update Jun 8, 2026 tracked by Updatify
16.8.3 (February 21, 2019)
React DOM
- Fix a bug that caused inputs to behave incorrectly in UMD builds. (@gaearon in #14914)
- Fix a bug that caused render phase updates to be discarded. (@gaearon in #14852)
React DOM Server
- Unwind the context stack when a stream is destroyed without completing, to prevent incorrect values during a subsequent render. (@overlookmotel in #14706)