React Performance: An Interview Checklist
Practical performance levers: memoization, splitting, virtualization, and avoiding unnecessary renders.
On this page
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.
Looking for structured, offline interview prep?
Free online lessons • Portable Amazon Kindle / Paperback
Frontend Interview Guide (2025 Edition)
By Rajesh Dhiman
Comprehensive preparation covering React internals, Web Performance, CSS architecture, and system design questions.
JavaScript Interview Guide
By Rajesh Dhiman
Deep dive into the Event Loop, microtask draining, closures, prototypal inheritance, and asynchronous execution patterns.
Note: All lessons on Frontend Interview remain completely free to read online. As an Amazon Associate, we may earn from qualifying purchases.
Written by Rajesh Dhiman
Authored by Rajesh Dhiman and engineered at Eunix Tech. Focused on deep-dive frontend engineering, JavaScript runtime internals, React architecture, and web performance.