Published on

Understanding React.memo in React

Authors
  • Name
    Ripal & Zalak
    Twitter

Understanding React.memo in React

Performance optimization is a critical aspect of building scalable React applications. One powerful tool in React’s optimization toolbox is React.memo. It allows you to prevent unnecessary re-renders for functional components, making your app more efficient.


What is React.memo?

React.memo is a higher-order component (HOC) that wraps a functional component and memoizes its result. It ensures that the component only re-renders when its props change. This can be particularly useful for components that render the same output given the same props.

In simple terms, React.memo works like a “shallow comparison” for functional components. If the props don’t change, React skips rendering the component.


Why is React.memo Important?

By default, React re-renders a component whenever its parent re-renders, even if the props passed to it haven’t changed. This behavior can lead to performance issues in large applications with deeply nested component trees.

Using React.memo, you can reduce unnecessary renders, improving your app's efficiency and responsiveness.


Basic Example of React.memo

Here’s an example to illustrate how React.memo works:

import React, { useState } from 'react'

const Child = React.memo(({ value }) => {
  console.log('Child rendered')
  return <p>Value: {value}</p>
})

function Parent() {
  const [count, setCount] = useState(0)
  const [text, setText] = useState('')

  return (
    <div>
      <button onClick={() => setCount(count + 1)}>Increment Count</button>
      <input
        type="text"
        value={text}
        onChange={(e) => setText(e.target.value)}
        placeholder="Type something"
      />
      <Child value={count} />
    </div>
  )
}

export default Parent