Notice
Recent Posts
- Today
- Total
반응형
빵 입니다.
배열 데이터를 렌더링할 때 key를 꼭 써야할까? 본문
📌 key를 추가하는 이유
- key는 각 항목을 구별할 수 있도록 도와주는 유일한 식별자이다.
- 리액트가 배열 목록을 효율적으로 업데이트하고, 순서가 변경되어도 정확하게 변경된 요소만 업데이트하는 데 도움을 준다.
(key를 기준으로 변경된 요소만 업데이트하고 나머지는 그대로 유지한다.)
➡️ key가 없으면 배열 아이템들을 식별하지 못 해서, 다 다시 그려준다.
➡️ key가 있으면 변경된 것만 새로운 것만 그려준다.
➡️ key가 없으면 배열의 순서를 기준으로 각 요소를 식별한다.
➡️ key가 없으면 리액트는 순서에 의존하여 모든 요소를 업데이트한다.
📌 테스트
const MyComponent = () => {
const items = [
{ id: 1, text: 'Item 1' },
{ id: 2, text: 'Item 2' },
{ id: 3, text: 'Item 3' },
];
return (
<ul>
{items.map((item) => (
<li key={item.id}>{item.text}</li>
))}
</ul>
);
};
위 코드를 기준으로 테스트 함.
🌀 key를 추가했을 경우
Rendered at : 0.2s for 24.7ms
화면에 렌더링되는데 걸린 총 시간 0.2초 소요
실제로 UI를 그리고 업데이트하는 데는 24.7밀리초가 소요
🌀 key를 추가하지 않을 경우
Rendered at : 0.4s for 103.9ms
화면에 렌더링되는데 걸린 총 시간 0.4초 소요
실제로 UI를 그리고 업데이트하는 데는 103.9밀리초가 소요
🌀 React Profiler를 이용해서 렌더링 속도 측정하는 방법
반응형
'프론트엔드 > React' 카테고리의 다른 글
react와 react-dom과 react-native (0) | 2023.12.06 |
---|---|
조건부 렌더링 (0) | 2023.12.05 |
상태가 없는 컴포넌트(Stateless)와 상태가 있는 컴포넌트(Statefull) (0) | 2023.12.05 |
양방향 바인딩 (0) | 2023.12.05 |
useState() (0) | 2023.12.05 |
Comments