0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Reactのmemo入門

Posted at

Reactのmemo機能について、初心者にもわかりやすく解説します。

06-12-21-getting-started-with-react-memo-blog.jpg

1. React.memoとは

React.memoは、関数コンポーネントの再レンダリングを最適化するための高階コンポーネント(Higher-Order Component, HOC)です。React.memoを使用することで、同じpropsが渡された場合、コンポーネントの再レンダリングをスキップしてパフォーマンスを向上させることができます。

2. React.memoの使い方

React.memoは、関数コンポーネントを引数に取り、最適化されたコンポーネントを返します。以下に、React.memoの基本的な使用方法を示します。

import React from 'react';

const MyComponent = (props) => {
  return (
    <div>{props.text}</div>
  );
};

const MemoizedMyComponent = React.memo(MyComponent);

export default MemoizedMyComponent;

上記の例では、MyComponentReact.memoでラップして、最適化されたコンポーネントMemoizedMyComponentを生成しています。これにより、MyComponentは同じpropsが渡された場合、再レンダリングがスキップされます。

3. 注意点

React.memoは、コンポーネントの最適化を行う際に役立ちますが、以下の点に注意してください。

  1. すべてのコンポーネントでReact.memoを使用する必要はありません。最適化が必要なコンポーネント(再レンダリングが多い、計算コストが高いなど)にのみ適用してください。
  2. オブジェクトや配列などの参照型のデータをpropsとして渡す場合、新しい参照が生成されるたびに再レンダリングが行われてしまいます。このような場合、React.memoの効果が十分に発揮されないことがあります。

まとめ

React.memoは、関数コンポーネントの再レンダリングを最適化するための高階コンポーネントです。同じpropsが渡された場合、コンポーネントの再レンダリングをスキップし、パフォーマンスを向上させることができます。ただし、すべてのコンポーネントに適用する必要はなく、最適化が必要なコンポーネントにだけ適用しましょう。また、参照型のデータをpropsとして渡す場合は、効果が十分に発揮されないことがある!

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?