How to use the useMemo React hook
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 anduseMemo
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.
→ I wrote 17 books to help you become a better developer, download them all at $0 cost by joining my newsletter
→ JOIN MY CODING BOOTCAMP, an amazing cohort course that will be a huge step up in your coding career - covering React, Next.js - next edition February 2025