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
useCallbackreturns a memoized callback anduseMemoreturns a memoized value, the result of that function call. The use case is different, too.useCallbackis 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.
download all my books for free
- javascript handbook
- typescript handbook
- css handbook
- node.js handbook
- astro handbook
- html handbook
- next.js pages router handbook
- alpine.js handbook
- htmx handbook
- react handbook
- sql handbook
- git cheat sheet
- laravel handbook
- express handbook
- swift handbook
- go handbook
- php handbook
- python handbook
- cli handbook
- c handbook
subscribe to my newsletter to get them
Terms: by subscribing to the newsletter you agree the following terms and conditions and privacy policy. The aim of the newsletter is to keep you up to date about new tutorials, new book releases or courses organized by Flavio. If you wish to unsubscribe from the newsletter, you can click the unsubscribe link that's present at the bottom of each email, anytime. I will not communicate/spread/publish or otherwise give away your address. Your email address is the only personal information collected, and it's only collected for the primary purpose of keeping you informed through the newsletter. It's stored in a secure server based in the EU. You can contact Flavio by emailing [email protected]. These terms and conditions are governed by the laws in force in Italy and you unconditionally submit to the jurisdiction of the courts of Italy.