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.