React Performance: An Interview Checklist
Practical performance levers: memoization, splitting, virtualization, and avoiding unnecessary renders.
Frontend Interview Team
February 08, 2026
30‑second interview answer
React performance is mostly about avoiding unnecessary work: reduce re-renders, keep renders cheap, and avoid rendering huge lists at once. Start by measuring (React DevTools Profiler), then apply targeted fixes: component splitting, memoization (React.memo, useMemo, useCallback), list virtualization, and sensible state placement.
Step 1: Measure first
Interviewers love this mindset:
“I don’t guess. I profile first.”
Tools:
- React DevTools Profiler
- browser performance tab
- simple
console.timefor expensive functions
Step 2: Common causes of slow React apps
- Too many re-renders
- state stored too high in the tree
- context updates triggering many consumers
- Expensive renders
- heavy computations in render
- big component trees
- Huge lists
- thousands of DOM nodes
- Large JS bundles
- slow initial load
Fixes (in order of impact)
1) Put state in the right place
- Keep local UI state local.
- Don’t lift state unless needed.
2) Split components
Smaller components reduce rerender scope.
3) Memoize only when it matters
React.memofor expensive childrenuseMemofor expensive computationsuseCallbackfor stable handlers passed to memoized children
Remember: memoization has overhead.
4) Virtualize large lists
If you render 10,000 items, memoization won’t save you.
Use virtualization (only render visible rows).
5) Avoid unnecessary object/array creation
Passing new {} / [] props breaks memoization.
6) Code-splitting
Use route-level splitting and lazy loading.
Micro-optimizations to avoid early
- Memoizing every component
- Using
useMemoeverywhere - Premature caching
Better to keep code simple until profiling says otherwise.
Interview mini checklist
If asked “How do you optimize React?” answer like this:
- Profile to find hot components
- Reduce re-render causes (state placement, context splitting)
- Memoize where needed
- Virtualize lists
- Split bundles/routes
Mini Q&A
Q1: When do you use React.memo?
- When a child is expensive and props are stable enough to benefit.
Q2: Biggest performance win for long lists?
- Virtualization.
Q3: What’s the first step in performance work?
- Measure/profile.
Summary checklist
- I profile before optimizing.
- I know top causes (state, context, lists).
- I can name the highest-impact fixes.
- I avoid premature memoization.