Understanding useMemo

bpinela

Bruno Pinela

Posted on October 18, 2024

Understanding useMemo

React re-renders components every time state or props change, which is great for keeping things up-to-date. But, it can also cause performance issues if you're doing heavy calculations on every render. That’s where useMemo comes in!

useMemo is a hook that caches the result of a function so it doesn’t have to run again unless its dependencies change

Image description

How It Works:

const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);
Enter fullscreen mode Exit fullscreen mode

useMemo takes two arguments: a function and an array of dependencies;
It’ll only re-run the function if one of the dependencies changes

When Should You Use It?

  • Expensive Calculations: If you have slow computations, wrap them in useMemo so they don’t run on every render
  • Prevent Unnecessary Re-renders: When passing objects or arrays as props, use useMemo to avoid them being recreated on each render, which could trigger unnecessary re-renders of child components

Example:
Without useMemo:

const result = computeExpensiveValue(a, b); // Runs on every render

Enter fullscreen mode Exit fullscreen mode

With useMemo:

const result = useMemo(() => computeExpensiveValue(a, b), [a, b]); // Runs only when `a` or `b` change
Enter fullscreen mode Exit fullscreen mode

When NOT to Use It:

Image description

Don’t overuse it! If your calculations are lightweight, adding useMemo won’t really help and might even slow things down. Use it when you have a clear performance problem

In Short:
Keep things simple and don’t optimize until you actually see performance issues :)

💖 💪 🙅 🚩
bpinela
Bruno Pinela

Posted on October 18, 2024

Join Our Newsletter. No Spam, Only the good stuff.

Sign up to receive the latest update from our blog.

Related

Understanding useMemo
react Understanding useMemo

October 18, 2024