DEV Community

Md Yusuf
Md Yusuf

Posted on

Understanding React.memo: Optimizing Functional Components

React.memo is a higher-order component used in React to optimize performance by preventing unnecessary re-renders of functional components. It works by memoizing the result of a component and only re-rendering it if its props change. This is useful for performance optimization in functional components that render the same output given the same props.

Example usage:

import React from 'react';

const MyComponent = ({ count }) => {
  console.log('Component re-rendered');
  return <div>Count: {count}</div>;
};

export default React.memo(MyComponent);
Enter fullscreen mode Exit fullscreen mode

In this example, MyComponent will only re-render if the count prop changes. If the parent component re-renders but the count prop remains the same, MyComponent won't re-render, reducing unnecessary computations.

By default, React.memo performs a shallow comparison of props, but you can also provide a custom comparison function for deeper checks if needed:

const MyComponent = React.memo((props) => {
  /* component code */
}, (prevProps, nextProps) => {
  // return true if props are equal, false otherwise
  return prevProps.someValue === nextProps.someValue;
});
Enter fullscreen mode Exit fullscreen mode

This can further optimize performance when you have more complex prop structures.

Top comments (0)