
React 19 is the most significant React release since hooks in React 16.8. The React Compiler alone eliminates years of manual performance optimisation work. Combined with stable Server Components, Actions, and new hooks — React 19 fundamentally changes how you write React applications. Here is everything you need to know.
Key takeaway: The React Compiler is the headline feature. It removes the need for useMemo, useCallback, and React.memo in most cases by automatically applying optimisations at build time. For large React codebases, this alone is worth the upgrade.
6 Major New Features in React 19
How to Upgrade to React 19 Step by Step
- Update React packages:
npm install react@19 react-dom@19 - Run the codemod:
npx codemod@latest react/19/migration-recipe - Fix breaking changes: Remove ReactDOM.render(), string refs, and legacy Context patterns
- Enable the compiler: Add the Babel plugin or Vite plugin for the React Compiler
- Test thoroughly: Run your test suite. Check hydration, Suspense boundaries, and async workflows
- Remove unnecessary memos: Clean up useMemo/useCallback where the compiler now handles it
React 19 Breaking Changes to Know
- ReactDOM.render() removed — Must use createRoot() (available since React 18)
- String refs removed — Use useRef() instead of ref="myRef"
- Legacy Context API deprecated — Migrate to modern createContext() + useContext()
- propTypes removed from core — Use TypeScript or a separate prop-types package if needed