Skip to main content

Difference between usecallback and usememo in react

 In React, the main difference between useCallback and useMemo is that useCallback caches functions, while useMemo caches the results of functions: 


useCallback
useMemo
What it caches
Functions
Results of functions
When to use
To optimize the creation of callback functions passed to child components
To optimize and cache the result of a computation that depends on certain inputs
Both useCallback and useMemo are React hooks that can help optimize the performance of React components by avoiding unnecessary re-renders.
Here are some more details about useCallback and useMemo: 
useCallback
  • Prevents unnecessary re-renders of child components when their parent component re-renders. It does this by caching callback functions based on their dependencies. 
  • useMemo
  • Prevents unnecessary recalculations and re-renders by caching the result of a function when its dependencies remain unchanged. This can be used to avoid executing expensive calculations.
One-liner for useCallback vs useMemo:

useCallback(fn, deps) is equivalent to useMemo(() => fn, deps).

With useCallback you memoize functions, useMemo memoizes any computed value:

const fn = () => 42 // assuming expensive calculation here
const memoFn = useCallback(fn, [dep]) // (1)
const memoFnReturn = useMemo(fn, [dep]) // (2)

(1) will return a memoized version of fn - same reference across multiple renders, as long as dep is the same. But every time you invoke memoFn, that complex computation starts again.

(2) will invoke fn every time dep changes and remember its returned value (42 here), which is then stored in memoFnReturn.

useCallback() and useMemo()

useCallback() and useMemo() are pretty much same but useCallback saves the function reference in the memory and checks on the second render whether it's same or not if it is same then it returns last saved function without recreating it and if it is changed then it returns a new function and replaces it with older function in memory for future rendering. useMemo works in same manner but it can't save your function but the computed or returned value. On every render useMemo checks the value if the returned value of your function is the same on second render then it will return same value without recalculating the function value and if the value is not same on second render then it will call the function and return new value and store it for future render.

Comments

Popular posts from this blog

What is Arrow Function?

 An arrow function is a concise way to write functions in JavaScript, introduced in ES6 (ECMAScript 2015). It uses the => syntax and is often preferred for its simplicity and ability to maintain the this context of the surrounding code. Syntax (param1, param2, ..., paramN) => expression If the function body contains multiple statements, you need to wrap it in curly braces {} and use the return keyword explicitly: (param1, param2, ..., paramN) => { // multiple statements return result; } If there is only one parameter, you can omit the parentheses: param => expression If there are no parameters, you must use empty parentheses: () => expression Examples Single-line arrow function: const add = ( a, b ) => a + b; console . log ( add ( 2 , 3 )); // Output: 5 Multi-line arrow function: const multiply = ( a, b ) => { const result = a * b; return result; }; console . log ( multiply ( 2 , 3 )); // Output: 6 Arrow function with one paramete...

What is event in react js?

 In React.js, an event is an object that represents an action or occurrence, such as a user interaction (e.g., a mouse click, a key press, or a form submission). React handles events in a declarative and efficient way, providing a synthetic event system that is consistent across different browsers. Key Features of Events in React: Synthetic Events : React wraps native browser events in its own event system called SyntheticEvent . This ensures compatibility across browsers and provides additional features like event pooling for performance optimization. Event Handling : Events in React are written as camelCase (e.g., onClick , onChange ), unlike plain HTML where events are written in lowercase (e.g., onclick , onchange ). Event handlers are passed as functions, typically as references or inline arrow functions. Binding this : When using class components, you may need to bind the event handler to the component instance ( this ). In function components, this is not required, especial...

React Interview Questions and Answers

 React is an efficient, flexible, and open-source JavaScript library designed to help developers create simple, fast, and scalable web applications. It was created by Jordan Walke, a software engineer at Facebook, and was first deployed on Facebook’s News Feed in 2011 and Instagram in 2012. React's simplicity and effectiveness make it accessible for developers with a JavaScript background to quickly build powerful web applications. Today, React is widely used by leading tech companies, including Facebook, Dropbox, Instagram, WhatsApp, Atlassian, and Meta. Its popularity stems from powerful features like the Virtual DOM, Components, State and Props, JSX, Hooks, and Routing, which simplify and enhance web development. To secure developer roles at top companies using React, it's essential to master the framework and prepare thoroughly. Familiarizing yourself with these top React interview questions can help you stand out as an expert in front of interviewers. 1. What is React.js? ...