React interviews drown in trivia unless they target the two things that predict code quality: an accurate rendering mental model and state-architecture judgment. These questions do exactly that, from hooks discipline through server components, with notes on what strong answers cover.
What a strong answer covers
State updates, parent re-renders, and context changes β not prop changes alone in the naive sense; render as re-running the function to produce a new tree, reconciled against the previous one, with commits applying real DOM changes. This model underlies every performance question; imprecision here predicts cargo-cult optimization.
What a strong answer covers
Referential stability for memoized children and effect dependencies, expensive computations β and the honest caveat that most usage is premature. Measuring before memoizing, and awareness that the React Compiler is changing this calculus, marks a current, judgment-driven candidate.
What a strong answer covers
Stale closures from missing deps, loops from unstable object deps, cleanup discipline for subscriptions and races (aborting fetches). The deeper answer: most effect bugs dissolve by not using effects β deriving during render, event handlers for event logic, and libraries for data fetching.
What a strong answer covers
State as low as possible, lifting only when shared, context for low-frequency global concerns (theme, session) with its re-render cost named, external stores (Zustand, Redux) for complex client state, and server-cache libraries (React Query/SWR) for server data. Separating server state from client state is the modern architectural line.
What a strong answer covers
Profiler first to see what re-renders; fixes: virtualization for the list, debouncing or deferring the search input (useDeferredValue/transitions), memoized row components with stable props, splitting state so typing does not re-render the world. Concrete tool use plus layered fixes is the pass.
What a strong answer covers
Identity across renders driving reconciliation; index keys on reordering lists cause state bleeding between rows (inputs, animations) and wasted DOM work. A candidate who has debugged the wrong-row-state bug explains this vividly β that story is the verification.
What a strong answer covers
Controlled inputs re-rendering on every keystroke versus refs/uncontrolled reads; large forms via form libraries with subscription-based re-rendering, field-level validation, and schema validation at submit. Naming the per-keystroke re-render cost as the scaling problem is the insight being tested.
What a strong answer covers
Error boundaries catching render-phase errors (not handlers or async), placed at route and feature granularity with recovery UI; Suspense coordinating async fallbacks for lazy components and data, enabling streaming in framework contexts. Granular placement strategy over one app-wide wrapper is the mature answer.
What a strong answer covers
Server components as data-fetching, zero-bundle render layers; client components as interactive islands; boundary design pushing interactivity down the tree, and props crossing the boundary needing serializability. Framework grounding (Next.js) is expected; confusion between SSR and RSC is the common failure worth catching.
What a strong answer covers
Testing Library querying by role and behavior over implementation details, user-event simulation, mocked network at the fetch/msw layer, and refusal to assert on internal state or snapshot-everything. A thin Playwright layer for journeys completes the answer; brittle-test war stories add credibility.
What a strong answer covers
Custom hooks as the default for stateful logic, plain functions for pure logic, composition/children patterns for UI structure β with render props and HOCs recognized as legacy patterns still met in codebases. Reaching for a custom hook with a clear API is the expected modern instinct.
What a strong answer covers
Feature-based organization over type-based, colocation of components/hooks/tests, a design-system layer, public-API boundaries between features (index exports, lint-enforced), and state kept feature-local. Evidence of having lived through the refactor from chaos is worth more than the diagram.
Skip the interviews entirely β get matched with pre-vetted React developers in 48 hours, $0 until you hire.
Need a custom question set?
Our free interview question generator builds a tailored list for any role, seniority, and focus area.
Try the interview question generator βReading fluency, yes β legacy codebases still contain them and error boundaries still require one (or a library). Writing fluency in classes is no longer worth interview time; spend it on the effects, state-architecture, and RSC questions instead.
Mid-level should nail rendering, keys, effects, and testing. The state-architecture, RSC boundary, and 400-component questions expose senior judgment β they have no memorizable answer and require having owned an application's structure over time.
A debugging exercise beats greenfield: hand them a small app with a stale-closure bug, an index-key bug, and a needless-re-render problem, and watch the diagnosis. It tests the mental model directly and respects everyone's time.
Hire directly
Hire vetted React developers in the USA βOther interview guides
Vetted talent ready for US teams. No recruitment fees. Zero risk.
πΊπΈ Trusted by companies across the United States