React 18 introduced concurrency foundations, transitions, and batching changes that matter in production migrations: responsiveness, StrictMode effect audits, and when createRoot changes behavior.
What's new in React 18?
The Core Idea
React 18 is not just a feature list. It is a new rendering foundation plus migration changes that show up in production and interview discussions: more responsive update scheduling, transitions for non-urgent work, and stricter dev checks that expose effect bugs you must actually fix.
Change | Why it matters | Example |
|---|---|---|
New root API | Enables concurrent features and improved scheduling |
|
Automatic batching | Fewer renders across async boundaries | Multiple state updates in timeouts/promises |
Transitions | Keep urgent input responsive during heavy updates |
|
Deferred values | Let expensive UI lag slightly behind fast input |
|
Suspense + streaming SSR | Faster time-to-first-byte and incremental rendering | Stream HTML and hydrate as data arrives |
New hooks for ids and external stores | Stable ids for a11y and safer subscriptions |
|
Migration notes
Move to createRoot to opt into React 18 behavior, and audit effects for StrictMode double-invocation in dev. Use transitions for non-urgent updates and keep effects idempotent.
React 18 adds concurrent rendering foundations, automatic batching, transitions/deferred values for responsiveness, stronger Suspense/streaming capabilities, and new hooks like useId. The goal is smoother UI without blocking urgent updates.
Use the relevant interview-question hub first, then move into a concrete study plan before targeted company sets.