Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- 자바 구구단 출력
- 타입스크립트
- 자바 공배수
- TypeScript
- java
- 자바 조건문
- MySQL
- 자바 for문
- 자바 switch문
- 자바 스캐너
- 자바 자동캐스팅
- 자바 삼항연산자
- 이클립스 DB연동
- 자바 반복문
- Til
- 자바
- 항해99 2기
- 자바 public
- 항해99
- 조코딩
- react ag grid
- Vue3
- 변수
- 프로그래머스
- 자바 while문
- 자바 if문
- 정보처리기사실기
- 자바 향상된 for문
- react with typescript
- 자바 강제 캐스팅
Archives
- Today
- Total
뇌 채우기 공간
[React] 배열 렌더링하기, map 사용 , key값이 꼭 있어야하는 이유 본문
이제까지 리액트에서 내가 배열을 렌더링할때는 이런 경우이다.
- 메인페이지에서 상품 목록을 가지고 올떄
위와 같은 페이지에서
상품 하나를 컴포넌트로 만들어서 , 페이지에서 상품 정보를 가지고 있는 배열을 map돌리는 것이다.
{product_list.map((p) => {
return (
<Product key={p.productId} {...p}>
</Product>
);
})}
여기서 map을 돌릴때 꼭 key가 있어야한다.
key가 없으면 추가나 삭제가 일어날때 매우 비효율 적인 작업이 일어난다.
예를 들어
[a, b, c, d] 배열에
z를 중간에 넣어 [a, b, z, c, d]로 만들고 싶다면
c가 z로 바뀌고, d가 c로 바뀌고 d가 새로 생긴다.
그 후 a를 삭제하고 싶으면
a가 b로 바뀌고 b가 z로 , c가 d로 바뀌고 마지막에 있던 d가 사라진다.
하지만 key가 있으면 고유한 값을 가졌기 때문에
z가 그대로 넣어지고 a가 그대로 삭제될 수 있다.
보통 key값으로 쓸 것이 없다면 index를 쓰는데 권장하지않는다.
만약에 배열안에 중복되는 key 가 있을 때에는 렌더링시에 오류메시지가 콘솔에 나타나게 되며,
업데이트가 제대로 이루어지지 않게 된다.
728x90
'WEB > REACT' 카테고리의 다른 글
[React] useEffect를 사용하기 / 마운트, 언마운트, 업데이트 (0) | 2021.07.21 |
---|---|
[React] 배열에서 원소 삭제하기 filter (0) | 2021.07.21 |
[React] Axios란? 서버통신하기/ headers, body 넣기 (0) | 2021.07.21 |
[React] react-daum-postcode로 주소 api사용하기 (0) | 2021.07.21 |
[REACT] 마켓컬리 클론코딩 - 검색 기능 구현하기 (2) | 2021.07.20 |