출저
- React 공식문서
- 위코드 멘토님들(🥰)
(!!! 잘못된 정보가 포함되어 있는경우 바로 고쳐주시면 감사합니다!!!)
Key는 React가 어떤 항목을 변경, 추가 또는 삭제할지 식별하는 것을 돕습니다. key는 엘리먼트에 안정적인 고유성을 부여하기 위해 배열 내부의 엘리먼트에 지정해야 합니다.
컴포넌트 단위를 랜더링 하는 리액트의 특성상 필요한 부분만 선택적으로 랜더링을 하기위해
리액트 내부적으로 key 값이 필요하다고 해석했다.const addListComment = commentList.map((comm) => {
return (
<List
comm={comm}
key={comm.id}
id={comm.id}
USER={USER}
deleteComment={this.deleteComment}
coloringHeart={this.coloringHeart}
/>
);
});
comm
을 인자로 받는데, comm
은 객체형이기 때문에 이미 그안에 id 값이 있고 이것을 새로 만들어지는 리스트마다 key와 id 라는 attribute값에 할당해준다. 이러면 아래 캡쳐한 React 문서의 말대로 하위 컴포넌트인 List
에서 이 값을 사용할 수 있다. 리스트를 삭제
까지 해야하는 기능을 가진 리스트에게는 삭제되면서 인덱스가 바뀔 수 있기 때문에 부적절하다. 단순한 순서만 필요하다면 사용가능하다.map인자.toString()
와 같이 고유한 문자열로 키값을 정해주는 방법도 있다. 하지만, 나처럼 인자가 객체나 리스트 형태면 좀 곤란하다..id
로 추출하여 사용하였다.
잘 읽었습니다!