Home / Articles / React 19.2 Is What Shipped — Not React 20

This article is published in English.

React 19.2 Is What Shipped — Not React 20

There is no React 20 yet. React 19.2 adds useEffectEvent, Activity, better DevTools tracks, and smoother Suspense — and it is worth upgrading to now.

564 words

Search traffic around “React 20” is loud, yet the shipping story is more practical than a major-version rumor.

There is no React 20 release yet. What actually left the door is React 19.2, and the changes are structural enough that people reasonably assume a major bump must have landed.

What actually landed in 19.2

useEffectEvent gives Effects a stable way to read the newest props and state without stuffing those values into the dependency list (tracked under issue #22646). The old workaround of parking values in useRef to dodge stale closures becomes unnecessary for that pattern.

// before: ref juggling to avoid stale closures
const onScrollEvent = useEffectEvent((currentTheme) => {
  logScrollPosition(currentTheme);
});

useEffect(() => {
  const handler = () => onScrollEvent(theme);
  window.addEventListener('scroll', handler);
  return () => window.removeEventListener('scroll', handler);
}, []); // theme intentionally left out — useEffectEvent handles it

Activity keeps a component’s state alive while hiding it from the DOM. That fits tabs, off-screen routes, and lists where scroll position should survive after you leave and return.

Chrome DevTools now surfaces React render and commit phases natively under React Performance Tracks. You can see which work dragged a frame without guessing from generic profiling alone.

Suspense also improved: nested boundaries produce fewer waterfall surprises, and fallback transitions feel smoother when content streams in.

Why this is more than a version number

Day-to-day developer experience still leads the roadmap: the features teams adopt most fix concrete frictions without forcing a brand-new mental model of React. — Summarized from the 2026 State of React survey narrative

That framing matches the shipping direction. React is not chasing a glossy v20 badge. It is closing everyday gaps: stale closures in Effects, blind spots in DevTools, and lost UI state when a screen is temporarily out of view.

What to actually do right now

  • Upgrade to 19.2 if you are still on 19.0; the release is intended to stay backward-compatible.
  • Replace ref-based Effect tricks with useEffectEvent where you only needed the latest values without re-subscribing.
  • For tab-heavy or wizard-style UIs, try Activity before pulling in another state library solely to preserve hidden screens.
  • Pair the release with the React Compiler (stable since late 2025) so manual useMemo and useCallback noise can shrink where the compiler already covers memoization.

Where this fits in the bigger picture

These updates sit comfortably beside Next.js server components, TypeScript’s stricter inference, and Tailwind CSS’s utility-first styling. The common full-stack JavaScript stack keeps converging instead of splitting into rival camps.

For authoritative detail, prefer the official React blog and React’s versioning documentation over secondary “React 20” roundups. Primary docs stay closer to what actually shipped.

In short: the hype cycle ran ahead of the release cycle. React 19.2 is already worth adopting for concrete Effect, Activity, DevTools, and Suspense improvements. Stay near the source, upgrade when it fits your app, and you will be ready whenever a true major version does appear.