React Key란?
No Filled
React가 리스트의 어떤 항목이 변경/추가/삭제되었는지 식별하기 위해 사용하는 특별한 속성으로 컴포넌트의 identity를 보장합니다.
기본 개념
- key는 React 엘리먼트에 안정적인 고유성을 부여하는 특수 속성
- 형제 요소들 사이에서만 고유하면 되며, 전체 애플리케이션에서 고유할 필요 없음
- props로 접근할 수 없는 특별한 속성 (React 내부적으로만 사용)
등장 배경
- 비효율적인 DOM 업데이트: 리스트가 변경될 때 모든 항목을 다시 렌더링하는 문제
- 잘못된 상태 유지: 컴포넌트 위치가 바뀔 때 상태가 잘못 유지되는 문제
- 성능 저하: 불필요한 컴포넌트 재생성으로 인한 성능 문제
동작 원리
재조정 (Reconciliation) 과정
- 이전 Virtual DOM과 새 Virtual DOM 비교
- key를 통해 엘리먼트 매칭
- key가 같으면 → 같은 엘리먼트로 인식, 업데이트만 수행
- key가 없거나 다르면 → 다른 엘리먼트로 인식, 제거 후 재생성
- 최소한의 DOM 조작 수행