DEV Community

Cover image for React.memo vs useMemo
Shanthi's Dev Diary
Shanthi's Dev Diary

Posted on

React.memo vs useMemo

React.memo vs useMemo — Explained (With Humor!)

If you've ever stared at your React component tree wondering "Why are you re-rendering? I didn’t even touch you!" — congratulations, you're officially a React developer.

With React 19 rolling into town like a cool new intern, many devs still ask: “Do React.memo and useMemo still matter?”

Short answer: YES. Long answer: You’re about to read it.


🧠 The Real Difference

Let’s clear the confusion once and for all:

🔹 React.memo — The Component Bodyguard

React.memo wraps a component, preventing it from re-rendering unless its props change.

Think of React.memo as:
A bouncer at the club door checking props IDs.

const Greeting = React.memo(function Greeting({ name }) {
  console.log('Rendered!')
  return <h1>Hello {name}</h1>
})
Enter fullscreen mode Exit fullscreen mode

If name doesn’t change → No re-render.
If name changes → VIP access.


🔹 useMemo — The Expensive Calculator

useMemo memoizes a value, usually something expensive to compute.

Think of useMemo as:
A lazy accountant who refuses to redo work unless absolutely necessary.

const total = useMemo(() => expensiveCalculation(items), [items])
Enter fullscreen mode Exit fullscreen mode

If items doesn’t change → useMemo says: "Bro, I already did this."
If it does → reluctantly recomputes.


🥊 React.memo vs useMemo — Head-to-Head

Feature React.memo useMemo
Purpose Prevent component re-render Cache expensive calculations
Works on Components Values (numbers, objects, arrays, results)
Checks dependencies Props Dependency array
Best for Heavy UI components Heavy computations
Worst use case Wrapping everything blindly Memoizing cheap functions

🧩 When to Use What?

✔ Use React.memo if:

  • Component is heavy to re-render.
  • Renders the same UI if props don’t change.
  • Parent re-renders too often.

Don't use React.memo if the props are always changing anyway (it does nothing then).

✔ Use useMemo if:

  • You’re running expensive logic inside render.
  • You pass stable memoized values to child components.
  • You want to avoid useless recalculations.

Don't use useMemo for:

  • Cheap calculations.
  • Every single variable (this is not TypeScript, calm down).

🎨 Diagram Time!

"What they actually do"

React.memo                     useMemo
--------------                --------------
Component? Stop here.         Value? Store here.
Props same? Skip render.      Dependencies same? Skip computing.
Props changed? Render!        Changed? Recompute!
Enter fullscreen mode Exit fullscreen mode

If React.memo were a person → security guard
If useMemo were a person → lazy mathematician


🧪 Real-Life Example (The Comedy Version)

function App({ items }) {
  // useMemo: "Don't make me calculate again!"
  const total = useMemo(() => {
    console.log('Computing total...')
    return items.reduce((a, b) => a + b, 0)
  }, [items])

  return (
    <ExpensiveUI total={total} />
  )
}

// React.memo: "You're not getting in unless your props change!"
const ExpensiveUI = React.memo(function ExpensiveUI({ total }) {
  console.log('Rendering ExpensiveUI')
  return <h1>Total: {total}</h1>
})
Enter fullscreen mode Exit fullscreen mode

In this drama:

  • useMemo prevents recalculations.
  • React.memo prevents component re-renders.
  • Your CPU lives to fight another day.

🚀 So… Are They Still Useful in React 19?

YES.
Even with improved React internals, concurrent features, and better scheduling —
React.memo and useMemo remain performance best friends, especially in large apps.

React 19 doesn’t remove them.
It doesn’t deprecate them.
It doesn’t roast them on stage.

They're still very much alive and helpful — when used wisely.


😂 The Funniest Explanation

React.memo: “Bro, don’t re-render unless something ACTUALLY changed.”

useMemo: “Bro, stop calculating that again. I saved the answer already.”


🧁 Final Thoughts (Sweet & Short)

  • React.memo = Avoid useless re-renders.
  • useMemo = Avoid useless re-calculations.
  • Don’t overuse them.
  • Don’t underuse them. Use them like salt: Just enough, or everything becomes weird.

Top comments (0)