Why to useMemo hook?

Suppose you have a module that displays a listing of products, each one with its own label and cost. Moreover, you have a separate function that determines the collective price for all the items. This is an illustration of how to employ the useMemo hoo…


This content originally appeared on DEV Community and was authored by Shubham_Baghel

Suppose you have a module that displays a listing of products, each one with its own label and cost. Moreover, you have a separate function that determines the collective price for all the items. This is an illustration of how to employ the useMemo hook to store the result of the total price calculation:


import React, { useMemo } from 'react';

function ItemList({ items }) {
  const totalPrice = useMemo(() => {
    console.log('Calculating total price...');
    return items.reduce((acc, item) => acc + item.price, 0);
  }, [items]);

  return (
    <div>
      <ul>
        {items.map((item) => (
          <li key={item.name}>
            {item.name}: {item.price}
          </li>
        ))}
      </ul>
      <p>Total price: {totalPrice}</p>
    </div>
  );
}

The useMemo hook lets us set up a variable, entitled totalPrice, in this instance. The first piece of the hook is a function that works out the cost of all the items; the second part is an array of dependencies, meaning that React will recalculate the price any time the dependencies alter. In this instance, the only thing that the calculation is reliant on is the items prop.

The useMemo hook memorizes the result of the function, so if the items prop hasn't changed since the last render, React will take the previous result instead of running the function again. This can be helpful for complicated calculations that don't need to be re-run every time the render is executed. For example, if there is a large list of items, figuring out the total cost on every render could be time-consuming; memorizing the result can increase performance.

It is worth noting that useMemo is not a substitute for useEffect. useMemo should be used to store the outcome of a function, while useEffect should be used for completing side effects like obtaining data from an API.


This content originally appeared on DEV Community and was authored by Shubham_Baghel


Print Share Comment Cite Upload Translate Updates
APA

Shubham_Baghel | Sciencx (2023-03-05T12:09:16+00:00) Why to useMemo hook?. Retrieved from https://www.scien.cx/2023/03/05/why-to-usememo-hook/

MLA
" » Why to useMemo hook?." Shubham_Baghel | Sciencx - Sunday March 5, 2023, https://www.scien.cx/2023/03/05/why-to-usememo-hook/
HARVARD
Shubham_Baghel | Sciencx Sunday March 5, 2023 » Why to useMemo hook?., viewed ,<https://www.scien.cx/2023/03/05/why-to-usememo-hook/>
VANCOUVER
Shubham_Baghel | Sciencx - » Why to useMemo hook?. [Internet]. [Accessed ]. Available from: https://www.scien.cx/2023/03/05/why-to-usememo-hook/
CHICAGO
" » Why to useMemo hook?." Shubham_Baghel | Sciencx - Accessed . https://www.scien.cx/2023/03/05/why-to-usememo-hook/
IEEE
" » Why to useMemo hook?." Shubham_Baghel | Sciencx [Online]. Available: https://www.scien.cx/2023/03/05/why-to-usememo-hook/. [Accessed: ]
rf:citation
» Why to useMemo hook? | Shubham_Baghel | Sciencx | https://www.scien.cx/2023/03/05/why-to-usememo-hook/ |

Please log in to upload a file.




There are no updates yet.
Click the Upload button above to add an update.

You must be logged in to translate posts. Please log in or register.