: 만약 key가 없으면 기존의 Dom(li 요소들)과 변경된 Dom을 비교하는 과정에서
리스트를 하나하나 다 비교하면서 변화를 감지해야되서 비효율적이고 성능이 좋지 않음.
: key값을 통해 기존 Dom트리와 이후 Dom트리가 일치하는지 확인하여, 트리의 변환이 효율적으로 이뤄질 수 있음.
: 엘리먼트에 안정적인 고유성을 부여하기 위해, 리스트 요소에 고유한 key값을 줘야함.
: 리스트 항목의 순서가 바뀔 수 있는 경우 index값도 바뀌므로 효율적으로 리렌더링 하지 못함.
예제코드
import { useState } from "react";
function App() {
const [arr, setArr] = useState(["a", "b", "c", "d", "e"]);
return (
<div>
<ul>
{arr.map((el, idx) => (
<li key={idx}>{el}</li> // 각 li마다 유니크한 key값을 넣어줌!
))}
</ul>
</div>
);
}
export default App;