Skip to content

React Performance: An Interview Checklist

Practical performance levers: memoization, splitting, virtualization, and avoiding unnecessary renders.

Rajesh DhimanFebruary 08, 20262 min read
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.time for expensive functions

Step 2: Common causes of slow React apps

  1. Too many re-renders
  • state stored too high in the tree
  • context updates triggering many consumers
  1. Expensive renders
  • heavy computations in render
  • big component trees
  1. Huge lists
  • thousands of DOM nodes
  1. 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.memo for expensive children
  • useMemo for expensive computations
  • useCallback for 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 useMemo everywhere
  • Premature caching

Better to keep code simple until profiling says otherwise.


Interview mini checklist

If asked “How do you optimize React?” answer like this:

  1. Profile to find hot components
  2. Reduce re-render causes (state placement, context splitting)
  3. Memoize where needed
  4. Virtualize lists
  5. 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.
Companion Book

Looking for structured, offline interview prep?

Free online lessons • Portable Amazon Kindle / Paperback

Frontend Interview Guide (2025 Edition) cover
Recommended for React & Frontend Rounds

Frontend Interview Guide (2025 Edition)

By Rajesh Dhiman

Comprehensive preparation covering React internals, Web Performance, CSS architecture, and system design questions.

View on Amazon ↗Kindle & Paperback
JavaScript Interview Guide cover
Recommended for Core JS Rounds

JavaScript Interview Guide

By Rajesh Dhiman

Deep dive into the Event Loop, microtask draining, closures, prototypal inheritance, and asynchronous execution patterns.

View on Amazon ↗Kindle & Paperback

Note: All lessons on Frontend Interview remain completely free to read online. As an Amazon Associate, we may earn from qualifying purchases.

RD

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.