Explain concurrent rendering with an example
Assesses fundamental understanding of React conventions, runtime behavior, and memory/performance considerations.
Hiring managers look for precision, avoidance of ambiguous jargon, and ability to explain trade-offs under real production conditions.
Concurrent rendering in React 18 lets React prepare UI updates in a non-blocking way. This means React can pause low-priority rendering work, handle urgent updates first (like typing or clicking), and then continue rendering.
#### Example: Search input stays responsive while filtering a large list
import { useMemo, useState, useTransition } from "react";
const items = Array.from({ length: 10000 }, (_, i) => `Item ${i + 1}`);
export default function SearchList() {
const [query, setQuery] = useState("");
const [filter, setFilter] = useState("");
const [isPending, startTransition] = useTransition();
function handleChange(e) {
const value = e.target.value;
setQuery(value); // urgent: keep input in sync
// non-urgent: expensive list filtering can be interrupted
startTransition(() => {
setFilter(value);
});
}
const filteredItems = useMemo(
() => items.filter((item) => item.toLowerCase().includes(filter.toLowerCase())),
[filter]
);
return (
<div>
<input value={query} onChange={handleChange} placeholder="Type to filter" />
{isPending && <p>Updating results...</p>}
<ul>
{filteredItems.slice(0, 200).map((item) => (
<li key={item}>{item}</li>
))}
</ul>
</div>
);
}
In this example, typing remains smooth because React prioritizes updating the input first, while list filtering is treated as interruptible background work.
Candidate Response Strategy & Interview Tips
- Start with a concise one-sentence summary: Deliver a direct, confident answer first before expanding into nuances.
- Demonstrate real-world trade-offs: Discuss where this approach excels and when you would avoid it in production systems.
- Discuss complexity & edge cases: Proactively explain time/space complexity or boundary conditions (null values, scale limits).
- Prepare for interviewer follow-ups: Technical hiring panels frequently probe deeper into concurrency, backward compatibility, or alternative libraries.