React · Frontend system thinking
What is concurrent rendering and what problem does it solve?
Short answer
Concurrent rendering lets React prepare updates in an interruptible way. It can pause low-priority work so urgent updates, such as typing, stay responsive. It does not make rendering run in parallel.
Before concurrent rendering, once React started rendering a tree it had to finish before the browser could handle the next urgent interaction. With a concurrent root, React can work on a low-priority update, yield to the browser, and resume later. If a more urgent update arrives, React can abandon the incomplete work and restart with the latest state.
function SearchPage() {
const [query, setQuery] = useState("");
const [results, setResults] = useState([]);
const [isPending, startTransition] = useTransition();
function handleChange(event) {
const next = event.target.value;
setQuery(next);
startTransition(() => {
setResults(filterLargeDataset(next));
});
}
return (
<div>
<input value={query} onChange={handleChange} />
{isPending && <p>Updating results...</p>}
<Results items={results} />
</div>
);
}What concurrency changes
- Rendering can be interrupted and resumed
- Transitions mark updates as non-urgent
- React can keep the previous screen visible while new UI is prepared
- Urgent updates are not blocked behind expensive non-urgent work
Concurrent rendering is not multithreading and does not make a slow calculation fast. The calculation still runs on the main thread; it is simply scheduled differently. Moving truly expensive work to a worker or reducing it is still the right fix.
Follow-ups you should expect
Interviewers use these to check whether the first answer was understanding or memorisation.
- 1Does concurrent rendering use multiple threads?
- 2What makes an update urgent versus non-urgent?
- 3Why does startTransition not speed up a heavy calculation?
- 4What is tearing and how does useSyncExternalStore relate to it?
Say it in the interview
Concurrent rendering lets React prepare updates in an interruptible way. It can pause non-urgent work, let the browser handle typing or clicking, and restart with newer state if needed. I use transitions for expensive UI updates that should not block input. It is not parallelism and it does not make slow code faster; it changes scheduling so the interface stays responsive.
Use this as a model, not a script. Saying it in your own words is what makes it survive follow-up pressure.
Related questions
Reading is step one
Now say it out loud.
Understanding an answer and delivering it under pressure are different skills. Rehearse this topic in a live React mock interview and get scored feedback on depth, clarity and confidence.