React 18 Concurrency: Transitions, Interruptible Rendering, and Why INP Improves
How React 18 scheduling works: urgent vs non-urgent updates, useTransition, interruptible rendering, and how these tools improve responsiveness (INP).
On this page
What you’ll learn
- What “concurrent rendering” actually means (practically)
- Urgent vs non-urgent updates
useTransitionand why it helps typing feel responsive- The connection to INP (Interaction to Next Paint)
The mental model: priority lanes
React 18 can schedule work with different priorities.
- Urgent updates: typing, clicking, direct feedback
- Non-urgent updates: rendering a huge filtered list, loading extra details
If expensive work blocks urgent feedback, the UI feels laggy → INP suffers.
Example: keep typing responsive with useTransition
import { useMemo, useState, useTransition } from 'react';
export function SearchList({ items }: { items: string[] }) {
const [query, setQuery] = useState('');
const [isPending, startTransition] = useTransition();
const [deferredQuery, setDeferredQuery] = useState('');
const filtered = useMemo(() => {
// pretend this is expensive
return items.filter((x) => x.toLowerCase().includes(deferredQuery.toLowerCase()));
}, [items, deferredQuery]);
return (
<div>
<input
value={query}
onChange={(e) => {
const next = e.target.value;
setQuery(next); // urgent
startTransition(() => {
setDeferredQuery(next); // non-urgent
});
}}
/>
{isPending ? <div>Updating…</div> : null}
<ul>
{filtered.map((x) => (
<li key={x}>{x}</li>
))}
</ul>
</div>
);
}What this does:
- The input stays responsive (urgent update)
- The expensive list update can be interrupted
Interview questions
Q1) What’s a transition?
30-second answer: A transition marks updates as non-urgent so React prioritizes urgent user feedback and can interrupt/restart rendering.
Q2) How does this relate to INP?
30-second answer: INP is about interaction responsiveness. If your main thread is busy rendering expensive updates, clicks/typing feel delayed. Transitions reduce that contention.
Quick recap
- Concurrency is about scheduling priorities
useTransitionhelps keep interactions responsive- Use it when expensive UI updates block input
Looking for structured, offline interview prep?
Free online lessons • Portable Amazon Kindle / Paperback
Frontend Interview Guide (2025 Edition)
By Rajesh Dhiman
Comprehensive preparation covering React internals, Web Performance, CSS architecture, and system design questions.
JavaScript Interview Guide
By Rajesh Dhiman
Deep dive into the Event Loop, microtask draining, closures, prototypal inheritance, and asynchronous execution patterns.
Note: All lessons on Frontend Interview remain completely free to read online. As an Amazon Associate, we may earn from qualifying purchases.
Written by Rajesh Dhiman
Authored by Rajesh Dhiman and engineered at Eunix Tech. Focused on deep-dive frontend engineering, JavaScript runtime internals, React architecture, and web performance.