728x90
- key는 컴포넌트 배열을 렌더링 했을 때 어떤 원소에 변동이 있었는지 알아내려고 사용한다.
- 키가 없을 경우에는 VirtualDOM을 비교하는 과정에서 리스트를 순차적으로 비교하면서 변화를 감지
- 키가 있을경우 이 값을 사용하여 더욱 빠르게 어떤 변화가 있었는지를 감지할 수 있다.
- key값을 설정할 때에는 map 함수의 인자로 전달되는 함수 내부에서 컴포넌트 props를 설정하듯이 설정하면 된다.
- example
-
게시판을 게시물 번호를 key로 설정하면 된다.const articleList = articles.map(article => ( <Article title = {article.title} writer = {article.writer} key = {article.key} /> ); - 만약 고유번호가 없는 반복적인 컴포넌트일 경우 map함수에 전달되는 콜백함수의 인수인 index값을 사용한다.
-
이전에 발생한 경고 메시지가 더 이상 출력되지 않는다.import react from "react"; const IterationSample = () => { const names = ["눈사람", "얼음", "눈", "바람"]; const nameList = names.map((name, index) => <li key={index}>{name}</li>); return <ul>{nameList}</ul>; }; export default IterationSample; - 단, index를 key값으로 사용하면 배열이 변경될 때 효율적으로 렌더링 하지 못한다.
728x90
'리액트 > 컴포넌트반복' 카테고리의 다른 글
| ch03.응용 (0) | 2021.11.10 |
|---|---|
| ch01.자바스크립트 배열의 map() 함수 (0) | 2021.11.10 |