[react]#7リストとKey
複数の構成部品をレンダリング
mapメソッドは配列内の要素を遍歴し、コールバックを実行し、新しい変更された配列を返します.この機能を使用して、必要な構成部品をデータでレンダーします.
function NumberList(props) {
const numbers = props.numbers;
const listItems = numbers.map((number) =>
<li>{number}</li>
);
return (
<ul>{listItems}</ul>
);
}
const numbers = [1, 2, 3, 4, 5];
ReactDOM.render(
<NumberList numbers={numbers} />,
document.getElementById('root')
);
Key
Keyは、Reactが変更、追加、または削除するアイテムを決定するのに役立ちます.keyは、安定した一意性を確保するために、アレイ内の領域に指定する必要があります.
キーワードは周囲の配列のコンテキストでのみ意味があるため、経験に基づいてmap()関数の内部のエンティティにkeyを入れることをお勧めします.鍵は配列内の兄弟間で一意である必要があり、範囲全体で一意である必要はありません.2つの異なる配列を作成する場合は、同じキーを使用できます.
キーを選択する最善の方法は、リスト内の他のアイテム間でアイテムを一意に識別できる文字列を使用することです.ほとんどの場合、データのIDは鍵として使用される.
アイテムの順序が変更される可能性がある場合は、キーにインデックスを使用することは推奨されません.避けられない場合は使用できますが、パフォーマンスが低下したり、構成部品のステータスに関連する問題が発生する可能性があります.
👉🏻 IndexではなくユニークIDを使用するのはなぜですか?
👉🏻 差異の例
function Blog(props) {
const sidebar = (
<ul>
{props.posts.map((post) =>
<li key={post.id}>
{post.title}
</li>
)}
</ul>
);
const content = props.posts.map((post) =>
<div key={post.id}>
<h3>{post.title}</h3>
<p>{post.content}</p>
</div>
);
return (
<div>
{sidebar}
<hr />
{content}
</div>
);
}
const posts = [
{id: 1, title: 'Hello World', content: 'Welcome to learning React!'},
{id: 2, title: 'Installation', content: 'You can install React from npm.'}
];
ReactDOM.render(
<Blog posts={posts} />,
document.getElementById('root')
);
Reference
この問題について([react]#7リストとKey), 我々は、より多くの情報をここで見つけました https://velog.io/@simoniful/React-7-리스트와-Keyテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol