ホームページ > ウェブフロントエンド > フロントエンドQ&A > Reactのデータのリストをどのようにレンダリングしますか?

Reactのデータのリストをどのようにレンダリングしますか?

Emily Anne Brown
リリース: 2025-03-20 14:45:33
オリジナル
309 人が閲覧しました

Reactのデータのリストをどのようにレンダリングしますか?

Reactのデータのレンダリングリストには、データ配列を反復し、 map関数を使用してReact要素のリストを生成することが含まれます。以下は、アイテムのリストをレンダリングする方法の例です。

 <code class="jsx">const items = [ { id: 1, name: 'Item 1' }, { id: 2, name: 'Item 2' }, { id: 3, name: 'Item 3' }, ]; function ListComponent() { return ( <ul> {items.map((item) => ( <li key="{item.id}">{item.name}</li> ))} </ul> ); }</code>
ログイン後にコピー

この例では、 map関数を使用してitemsアレイを反復し、各アイテムに対してリスト項目( <li> )が作成されます。 key小道具は、どのアイテムが変更されたか、追加された、または削除されたかを特定するのに役立つため、重要です。

Reactでリストをレンダリングするときにキーを使用するためのベストプラクティスは何ですか?

Reactでリストをレンダリングする場合、キーを使用することは、パフォーマンスと適切な調整に重要です。キーを使用するためのベストプラクティスは次のとおりです。

    <li> 一意性:キーがリストの兄弟の中でユニークであることを確認してください。これを達成する最良の方法は、データベースのIDフィールドなど、データから一意の識別子を使用することです。 <li> 安定性:キーは安定したままで、アプリが実行されても変更されないはずです。アイテムを挿入または削除するとインデックスをシフトし、不必要な再レンダーにつながるため、配列のインデックスをキーとして使用しないようにします。 <li> データとの関連性:キーは、レンダリングするデータと密接に関連する必要があります。たとえば、リストがユーザーデータで構成されている場合、ユーザーのIDをキーとして使用することは、乱数を使用するよりも適切です。 <li> 一般的なキーを避けてください: Math.random()Date.now()などの一般的なキーを使用しないでください。これらは、和解とパフォーマンスの問題につながる可能性があります。

正しいキー使用法の例は次のとおりです。

 <code class="jsx">const users = [ { id: 1, name: 'Alice' }, { id: 2, name: 'Bob' }, ]; function UserList() { return ( <ul> {users.map((user) => ( <li key="{user.id}">{user.name}</li> ))} </ul> ); }</code>
ログイン後にコピー

Reactでのリストレンダリングのパフォーマンスをどのように最適化できますか?

Reactのリストレンダリングのパフォーマンスを最適化することは、いくつかのテクニックを通じて達成できます。

    <li>

    メモ: React.memoまたはuseMemoを使用して、リスト項目の不要な再レンダーを防ぎます。 React.memoは機能成分に役立ち、 useMemo高価な計算を最適化するために使用できます。

     <code class="jsx">import React from 'react'; const Item = React.memo(function Item({ name }) { return <li>{name}</li>; }); function ListComponent({ items }) { return ( <ul> {items.map((item) => ( <item key="{item.id}" name="{item.name}"></item> ))} </ul> ); }</code>
    ログイン後にコピー
    <li> 仮想化:大規模なリストを扱うときは、 react-windowreact-virtualizedなどの仮想化ライブラリの使用を検討してください。これらのライブラリは、リスト内の可視アイテムのみをレンダリングし、パフォーマンスを大幅に改善します。 <li> 深いネスティングを避けてください:リストアイテムのコンポーネントを可能な限りシンプルに保ちます。リスト項目内の深くネストされたコンポーネントを避けてください。これにより、再レンダリング時間が増加する可能性があるためです。 <li> バッチアップの更新: unstable_batchedUpdatesを使用して、Reactdomから複数の状態の更新をバッチします。これにより、再レンダーの数を減らすことでパフォーマンスが向上します。 <li> 効率的なリスト操作を使用する場合:リストを更新する場合、 filtermap上のspliceまたはpushなどの操作を好み、元のアレイの変異を避けて、不必要な再レンダーにつながる可能性があります。

反応でリストをレンダリングするとき、どのような一般的な間違いを避けるべきですか?

Reactでリストをレンダリングする場合、エラーやパフォーマンスの問題につながる可能性のある一般的な落とし穴を避けることが重要です。

    <li> キーを使用していない:最も一般的な間違いの1つは、リストアイテムのあるキーを使用していないことです。キーがなければ、Reactはどのアイテムが変更されているかを特定するのに苦労する可能性があり、更新が誤っていてパフォーマンスの低下につながります。 <li> 配列インデックスをキーとして使用する:キーとして配列インデックスを使用すると、リストの注文が変更されたときに問題を引き起こす可能性があり、不必要な再レンダーと潜在的な状態の不一致につながります。代わりに、一意で安定した識別子を使用してください。 <li>

    元の配列の変異:元の配列を直接変異させると、予期しない動作やバグが発生する可能性があります。状態を更新するときは、常に新しい配列を作成します。

     <code class="jsx">// Incorrect: Mutating the original array const items = [{ id: 1, name: 'Item 1' }]; items.push({ id: 2, name: 'Item 2' }); // Correct: Creating a new array const items = [{ id: 1, name: 'Item 1' }]; const newItems = [...items, { id: 2, name: 'Item 2' }];</code>
    ログイン後にコピー
    <li> 複雑なコンポーネントのオーバーレンダリング:必要でない場合は、リストアイテム内に複雑なロジックまたはネストされたコンポーネントを配置しないでください。リストのすべての変更により、コンポーネントツリー全体が再レンダリングされるため、これはパフォーマンスの問題につながる可能性があります。 <li> 大規模なリストの仮想化を無視する:非常に大きなリストの場合、仮想化の使用に失敗すると、パフォーマンスが低下する可能性があります。 react-windowなどのライブラリを使用して、リストの可視部分のみをレンダリングすることを検討してください。

これらの一般的な間違いを避けることにより、Reactでのリストのレンダリングが効率的でエラーのないものであることを確認できます。

以上がReactのデータのリストをどのようにレンダリングしますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート