A comparison between useMemo and useCallback

A comparison between useMemo and useCallback

A comparison between useMemo and useCallback

React Hooks have been a huge help for those who like working with functional components. And hence, many people always need clarification on the useMemo hook and useCallback hook. If you need help getting your heads around why, how, and where we should use these hooks, this blog will help you understand the basics.

What is React Hooks?

As mentioned at the beginning of this article, the image represents state management in React class components. During the initial days, it was only possible for users to handle the states of their members in Class components as this functionality was absent in Functional components.

However, this changed in October 2018, when React released the concept of ‘Hooks’ in Functional components. Hooks finally brought a ray of light towards these components as earlier, they lacked a lot of necessary functionalities, and hence class components were preferred by most users.

React consists of various types of ‘Hooks,’ each targeting a different functionality. Some commonly used React Hooks are useState, useReducer, useCallback, useMemo, useRef, useImperativeHandle, useLayoutEffect, and useDebugValue. Here we will understand a few of these hooks thoroughly.

  • useMemo Hook

In simple words, the function of the useMemo hook is to memorise a specific value between the re-renders. Now, you might wonder what ‘re-render’ mean. 

One of React’s significant tasks is keeping the application’s UI in sync with the application state, and the tool needed for this is called a “re-render”. Each of these “re-render” generates a visual image of what the DOM should look like based on the current state, and this is what we call the “virtual DOM”.

React only manipulates the virtual DOM on every re-render as a React user. Sometimes, a developer might want a particular value to remain the same after every re-render. Here we use our useMemo hook.

An example of useMemo hook is as follows.

  • useCallback Hook

The useCallback hook has the same use as well as functionality in React. This hook prevents a component from re-rendering unless its dependencies are updated.

You might have noticed the word ‘dependency,’ so what is it? React useCallback takes up two arguments: first, a function where you will write the logic, and second, the dependency array like useEffect.

A useCallback function will only run if its dependency is updated; hence, this feature helps improve the application’s performance.

An example of useCallback hook is as follows.

useMemo VS. useCallback

  • The useCallback hook takes up a callback function that uses the dependencies from the array, whereas the useMemo hook takes up a create function that returns its value.
  • The useCallback will always define or return a function after it is invoked between renders; at the same time, the useMemo will be used to calculate a value after it is invoked between renders.
  • Let’s take an example; if the computationally expensive code accepts arguments and returns a value, you would need to use useMemo to keep referencing that value between renders without re-running the computationally expensive code.
  • Something that might simplify this for you is that whenever you want to handle the value of data, use the useMemo hook. And when you want to handle a function or a child component, use the useCallback hook.

When Not to use useMemo & useCallback

 The useCallback or useMemo hooks play a huge role as a helping hand for the developers in various situations; however, you should only use them for some functions. Most of the functions these two hooks perform can be achieved in multiple other ways. For instance, the useEffect hook, which is used a lot, can also help us control the re-renders. A developer should always consider the performance levels of their app first before deciding whether or not to use these functions. Look for weak spots in your code and try to make it better. This will help you get a strong grip on Javascript and learn React’s new features and functions. So, use the useCallback and useMemo only if it can make you perfect your code even more.


In the end, useMemo and useCallback hooks are used to improve your application and improve its performance. 

A useCallback will always return a memoized function, whereas the useMemo hook will always give you a memoized value. So, if you are manipulating just the values, you know your option. However, in the case of a function or component manipulation, you want to go a different route.

But before using them in your next React project, ensure you need them. Overusing any feature might affect the result you want to see in your application and even the performance.

Article Name
A comparison between useMemo and useCallback
React has a variety of "Hooks" that each target a unique functionality. The core ideas of Hook are better explained by comparing useCallback and useMemo.
Publisher Name
BugendaiTech Pvt Ltd
Publisher Logo
Spread the updates

Leave a reply

Notice: Undefined index: position_on_screen in /home/tl2jq5v7asif/public_html/wp-content/plugins/mystickyelements/mystickyelements-front.php on line 203