Guide
REACT INTERVIEW Qs
Technical questions and model answers for interviewing React developers. Covers hooks, performance, state management, and Server Components.
Last updated: May 2026
Explain the difference between useEffect and useLayoutEffect
useEffect runs asynchronously after browser paint, for side effects like data fetching and subscriptions. useLayoutEffect runs synchronously before paint, needed for DOM measurements and synchronous layout updates. It has a larger performance impact, so use it only when truly necessary.
How do you optimize React rendering performance?
Use React.memo to prevent unnecessary re-renders, useMemo to cache expensive computations, and useCallback to stabilize callback references. Also important: virtual lists (react-window), code splitting (React.lazy + Suspense), and proper state scoping (prefer local state).
What's the difference between Server and Client Components?
Server Components render on the server and don't ship JavaScript to the browser. They can access databases and the filesystem directly, speeding up initial page loads. Client Components hydrate in the browser and access browser APIs like useState and useEffect. In Next.js App Router, the default is Server Component.
Explain the difference between Zustand and Redux
Zustand is a minimal state management library with little boilerplate and an intuitive hook-based API. No Context needed — access stores from anywhere. Redux offers predictable state updates and powerful DevTools, but has more boilerplate and higher learning cost. For small-to-medium projects, Zustand is preferred; for large enterprise apps, Redux Toolkit is recommended.
What are the benefits of custom hooks?
Custom hooks let you reuse logic across components. They abstract data fetching, form handling, and browser API wrapping, letting components focus on UI rendering. As named functions, they're testable and guarantee consistent behavior across multiple components.
How do Concurrent Features impact React apps?
React 18's Concurrent Features let you interrupt, prioritize, and resume rendering. useTransition defers non-urgent updates, and useDeferredValue keeps UI smooth during high-frequency input. Dramatically improves UX in large apps, but requires care around side effect execution order.
Contact
Looking for a React Developer?
I can support your technical interviews, advise on hiring, or join directly as your React engineer.