React Performance Traps Every Developer Should Know
React is fast by default, but small mistakes can make components laggy. Letβs go through some common performance traps and how to fix them.
1. Unnecessary re-renders
function Button({ label }) {
console.log("rendering...");
return <button>{label}</button>;
}
Every parent re-render will re-render the child, even if props didnβt change.
β
Use React.memo for pure components.
2. Inline functions in JSX
<button onClick={() => doSomething()}>Click</button>
This creates a new function every render.
β
Use useCallback when passing stable handlers.
3. Heavy computations inside render
function Chart({ data }) {
const processed = expensiveCalculation(data);
return <Plot data={processed} />;
}
β
Move heavy logic to useMemo or pre-process before rendering.
4. Not splitting bundles
A huge initial bundle makes apps slow.
β
Use dynamic imports (React.lazy) for code splitting.
π Key Takeaways
- Memoize when necessary, not everywhere.
- Keep renders cheap and side-effect free.
- Use React DevTools Profiler to find bottlenecks.
Small changes = big speed improvements.