React 19.2 shipped in October 2025 with a set of features that solve real problems developers have been working around for years. The Activity component, the stable useEffectEvent hook, improved DevTools, and a React Compiler that is now mainstream. Here is what each one does and when you would actually use it.
The Activity Component: Keep UI State Alive
The Activity component lets you keep a subtree mounted and its state preserved even when it is visually hidden. Before this, when a user navigated away from a tab or panel, React unmounted the components and destroyed all their state. When they came back, everything re-rendered from scratch.
With Activity, you wrap the section in the component and set its visibility mode. React keeps the tree in memory. Switching back is instant because nothing needs to re-fetch or re-render. This is particularly useful for tab panels, wizard steps, and any UI where users move back and forth between views.
useEffectEvent: Stable Event Handlers Without Re-Renders
The useEffectEvent hook is now stable in 19.2. It solves a specific but very common problem: you have a side effect that needs to read the latest value of a prop or state, but you do not want the effect to re-run every time that value changes.
The classic workaround was adding the value to the dependency array and accepting extra re-runs, or using a ref to hold the latest value. useEffectEvent gives you a stable function reference that always captures the current values without being listed in effect dependencies. Cleaner code, fewer accidental re-runs.
React Performance Tracks in DevTools
The React DevTools profiler gained a Performance Tracks view that integrates with the browser's native performance timeline. You can see React renders, component updates, and Suspense boundaries layered directly on top of network requests and browser paint events.
The practical value here is diagnosing slow interactions. Instead of guessing whether a slow page load is caused by a network request or a heavy render, you get a single view that shows both together. This has been one of the most requested improvements to the tooling for years.
The React Compiler Is Now Mainstream
The React Compiler, which automatically memoizes components and values without manual useMemo and useCallback calls, has moved from experimental to mainstream with React 19.2. Benchmarks show roughly 32% fewer render cycles in typical applications after enabling it.
For most teams this means removing a significant amount of defensive memoization code that was written to work around React's rendering behaviour. The compiler analyses your components at build time and adds the optimisations automatically. You write straightforward code and it stays fast.
React Native 0.83 Alignment
React 19.2 ships alongside React Native 0.83, which brings the web and native rendering models closer together. Shared components, shared hooks, and fewer differences to work around when building cross-platform. For teams using Expo or React Native for their mobile app alongside a React web app, the improved alignment reduces the mental overhead of maintaining both.
Should You Upgrade?
If you are on React 18, the upgrade to 19 has been smooth for most teams. The Activity component and the compiler alone are worth it for apps with complex navigation or performance-sensitive UIs. The useEffectEvent hook will simplify code in almost every codebase that has non-trivial side effects.
If you are building a product and want a team that keeps up with the ecosystem so you do not have to, Cystall builds React-powered MVPs for startups that need to move fast without accumulating technical debt.