반응형
- 리액트에서는 컴포넌트가 state변경, 이벤트 발생 등에 의해 렌더링 될때 virtual DOM을 통해 이전의 렌더링 결과와 새로운 렌더링 결과를 비교하고 변경된 부분만 재렌더링한다. 이때 배열도 마찬가지로 각 원소를 하나씩 비교하여 변경된 부분을 감지하게 되는데 이때 배열의 key가 어떤 요소가 변경이 되어 재렌더링이 필요한지를 식별하는데에 필요한 역할을 하게 된다.
- 그런데 배열의 Index를 사용하여 key를 지정하게 되면 문제가 발생한다. 배열의 index는 배열의 수정에 의해 변경될 수 있기 때문에 엘리먼트를 구분하는 고유한 값이 될 수 없기 때문이다. 또한 배열이 변경되면 각각의 엘리먼트들이 재렌더링되므로 불필요한 렌더링을 발생시킬 수 있다.
- 물론 배열이 절대 변경될 가능성이 없다면 사용해도 좋겠으나 고유성과 안정성을 위해서는 고유한 키를 생성(난수 발생 등)하여 사용하는 것이 권장된다.
반응형
'개발이야기 > 웹개발' 카테고리의 다른 글
[코드잇 스프린트 풀스택 4기] 데이터 베이스 정규화란 (0) | 2024.12.10 |
---|---|
[코드잇 스프린트 풀스택 4기] 리액트 생명 주기(Life Cycle)란 (1) | 2024.12.10 |
[코드잇 스프린트 풀스택 4기] 리액트 useMemo, useCallback (0) | 2024.12.10 |
[코드잇 스프린트 풀스택 4기] 리액트(React)의 렌더링 방식 (1) | 2024.11.25 |
[코드잇 스프린트 풀스택 4기] 리액트(React) 컴포넌트 (0) | 2024.11.25 |