2017-11-29 14 views
0

항목 목록을 렌더링 할 때 React는 항목이없는 경우 각 항목의 색인을 기본 키로 사용합니다.React가 왜 객체 참조를 키로 사용하지 않습니까?

return <div> 
 
    {this.props.shows.map(show => <ShowComp title = {show.title}/>)} 
 
</div>;

왜 대신 각 항목의 JS 객체 참조을 사용하여 반응하지 않습니다? 그것이 인덱스 순서가 바뀌면 (색인 접근 방식과 반대되는) 항목의 재 렌더링을 일으키지 않으므로 훨씬 안전한 옵션처럼 보입니다.

저는 React에 처음으로 접했습니다. 근본적인 이유가있을 것입니다.

는 코너에서 (소자 반응 매핑 개체 유사한 요소들의리스트를 렌더링) ngFor, 또한 (반작용에 key 동등하다)을 trackBy 구성 옵션을 갖는다. 그러나 그것이 제공되지 않으면 객체 참조를 식별자로 사용하므로 더 자연 스럽습니다.

답변

0

기본적으로 개체 참조를 사용하지 않는 이유는 모두 React의 개발 자의 선택입니다.

모든 항목에서 고유하지 않아도되며 각 항목의 형제간에 고유해야합니다. 다음과 같이

는 : https://reactjs.org/docs/reconciliation.html#keys

당신은 확실히 형제 자매에서 유일한 독특한 소위 고유하지 않은 키를 사용할 수 있습니다.

또한 고유 식별자에있는 대부분의 작은 정수보다 빠르게 개체 참조를 사용하고 있습니까?

+0

응답 해 주셔서 감사합니다. "형제끼리의 고유 한 부분"을 얻었지만 왜 객체 참조를 키로 사용할 수 없는지, 왜 문자열이나 숫자를 사용해야하는지 알지 못합니다. 객체 참조는 각 객체에 대해 고유하게 고유합니다. 어쩌면 잘못된 질문을하는 것일 수도 있습니다. –