ListとKey
1.key
keyは、リスト(
📍 例
keyは、リスト内の他のアイテム間でアイテムを一意に識別できる文字列を使用することが望ましい.ほとんどの場合、データのidは鍵として使用されます.
安定したidがなければ
プロジェクトの順序が変更される可能性がある場合は、パフォーマンスの低下やステータスに関連する問題を引き起こす可能性があるため、インデックスをキーとして使用することは避けてください.
3.keyの特性
鍵はアレイ内の兄弟間でのみ一意であり、範囲全体で一意である必要はありません.つまり、2つの異なる配列を作成するときに、同じキーを使用することができます.
reactではkeyがヒントを提供しますが、コンポーネントとして渡されません.構成部品がkeyと同じ値を必要とする場合、次のように明示的に別の名前のpropに渡されます(通常は多くのidが使用されます).
4.正しい鍵の使用例
経験上
この方法でコードをよりきれいにすることができますが、乱発しないほうがいいです.
https://ko.reactjs.org/docs/lists-and-keys.html
keyは、リスト(
<li></li>
)要素を作成する際に含まなければならない特殊な文字列属性であり、要素に安定した一意性を与えるために配列内部要素に指定する必要があります.これにより、Reactが変更、追加、または削除するアイテムを特定できます.📍 例
const numbers=[1,2,3];
const items=numbers.map(number=>
<li key={number.toString()}>
{number}
</li>
);
2.鍵になるものkeyは、リスト内の他のアイテム間でアイテムを一意に識別できる文字列を使用することが望ましい.ほとんどの場合、データのidは鍵として使用されます.
安定したidがなければ
Date.now().toString()
を使用することができる.プロジェクトの順序が変更される可能性がある場合は、パフォーマンスの低下やステータスに関連する問題を引き起こす可能性があるため、インデックスをキーとして使用することは避けてください.
鍵はアレイ内の兄弟間でのみ一意であり、範囲全体で一意である必要はありません.つまり、2つの異なる配列を作成するときに、同じキーを使用することができます.
reactではkeyがヒントを提供しますが、コンポーネントとして渡されません.構成部品がkeyと同じ値を必要とする場合、次のように明示的に別の名前のpropに渡されます(通常は多くのidが使用されます).
const content = posts.map((post) =>
<Post
key={post.id}
id={post.id}
title={post.title} />
);
→Post素子はprops.id
と読めますが、props.key
は読めません.4.正しい鍵の使用例
経験上
map()
関数内部の要素にkeyを加えるのが望ましい.function ListItem(props) {
// <li> 안에 key를 지정하지 않는다 ❗
return <li>{props.value}</li>;
}
function NumberList(props) {
const numbers = props.numbers;
const listItems = numbers.map((number) =>
// 🌟 이곳 map()안의 리턴되는 컴포넌트 안에서 key를 지정해야 한다.
<ListItem key={number.toString()} value={number} />
);
return (
<ul>
{listItems}
</ul>
);
}
const numbers = [1, 2, 3, 4, 5];
ReactDOM.render(
<NumberList numbers={numbers} />,
document.getElementById('root')
);
5.JSXにmap()を含めるこの方法でコードをよりきれいにすることができますが、乱発しないほうがいいです.
function NumberList(props) {
const numbers = props.numbers;
return (
<ul>
{numbers.map((number) =>
<ListItem
key={number.toString()}
value={number} />
)}
</ul>
);
}
📚 referencehttps://ko.reactjs.org/docs/lists-and-keys.html
Reference
この問題について(ListとKey), 我々は、より多くの情報をここで見つけました https://velog.io/@wiostz98kr/TIL42-l-React-이벤트-다루기テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol