Skip to content

How to use the useMemo React hook

New Course Coming Soon:

Get Really Good at Git

Find out what the useMemo React hook is useful for, and how to work with it!

Check out my React hooks introduction first, if you’re new to them.

One React hook I sometimes use is useMemo.

import React, { useMemo } from 'react'

This hook is used to create a memoized value.

This hook is very similar to useCallback, the difference is that useCallback returns a memoized callback and useMemo returns a memoized value, the result of that function call. The use case is different, too. useCallback is used for callbacks passed to child components.

Sometimes you have to compute a value, either through a complex calculation or by reaching to the database to make a costly query or to the network.

Using this hook, this operation is done only once, then the value will be stored in the memoized value and the next time you want to reference it, you’ll get it much faster.

Here’s how to use it:

const memoizedValue = useMemo(() => expensiveOperation())

Make sure you add that empty array as a second parameter to useMemo(), otherwise no memoization will happen at all.

If you need to pass arguments, you also need to pass them in the array:

const memoizedValue = useMemo(() => expensiveOperation(param1, param2), [param1, param2])

If one of the parameters change when you try to access the value, the value of course will be calculated without memoization.

Are you intimidated by Git? Can’t figure out merge vs rebase? Are you afraid of screwing up something any time you have to do something in Git? Do you rely on ChatGPT or random people’s answer on StackOverflow to fix your problems? Your coworkers are tired of explaining Git to you all the time? Git is something we all need to use, but few of us really master it. I created this course to improve your Git (and GitHub) knowledge at a radical level. A course that helps you feel less frustrated with Git. Launching May 21, 2024. Join the waiting list!
→ Get my React Beginner's Handbook
→ Read my full React Tutorial on The Valley of Code

Here is how can I help you: