티스토리 뷰
리액트 반복문 map
<ul>
{['사과','바나나','귤'].map( (v)=> {
return (
<li>{v}</li>
);
})}
</ul>
이렇게 반복문을 돌리면 배열의 값들이 들어간채로 목록이 생성됨
그렇다면 값이 두개인 것은?
이렇게 2차원 배열로도 가능하고
<ul>
{[['사과', '맛없다'],['바나나', '맛없다'],['귤', '맛있다']].map( (v)=> {
return (
<li><b>{v[0]}</b> - {v[1]}</li>
);
})}
</ul>
객체로도 가능
<ul>
{[{fruit:'사과', taste:'맛없다'},{fruit:'바나나', taste:'맛없다'},{fruit:'귤', taste:'맛있다'}].map( (v)=> {
return (
<li><b>{v.fruit}</b> - {v.taste}</li>
);
})}
</ul>
이름이 있으니 객체가 더 나을듯...
화살표 함수 return 생략 가능
중괄호 + return 생략, 소괄호도 생략 가능
<ul>
{[{fruit:'사과', taste:'맛없다'},{fruit:'바나나', taste:'맛없다'},{fruit:'귤', taste:'맛있다'}].map( (v)=> (
<li key={v.fruit}><b>{v.fruit}</b> - {v.taste}</li>
))} // 중괄호나 소괄호 없이 리턴 생략 가능
</ul>
이렇게만 쓰고 key가 없으면 에러가 남!
보이지는 않지만 리액트가 필요로 하는 기능, key값은 고유해야함! 고유하지 않으면 에러남
key에 순서를 받아오는 i 값을 사용하는 것은 좋지 못함, 성능 최적화 할 때 좋지 않음, 문자 + i 를 할 수 도 있지만
걍 쓰지말자~
<ul>
{[{fruit:'사과', taste:'맛없다'},{fruit:'바나나', taste:'맛없다'},{fruit:'귤', taste:'맛있다'}].map( (v, i)=> { // 순서를 받아오는 것도 가능
return (
<li key={v.fruit+v.taste}><b>{v.fruit}</b> - {v.taste}</li> // 하지만 key에 i를 사용하면 나중에 성능 최적화 때 문제가 생길 수 있음
);
})}
</ul>
이렇게 map을 쓰면 불편하기 때문에 사용하는 것이 props!!!
728x90
'유튜브 강의' 카테고리의 다른 글
제로초 리액트 강의 3.3 숫자야구 만들기 (0) | 2021.11.08 |
---|---|
제로초 리액트 강의 3.2 (0) | 2021.11.08 |
제로초 리액트 강의 2.2 (0) | 2021.11.01 |
제로초 리액트 강의 2.1 React Hooks (0) | 2021.10.31 |
제로초 리액트 강의 1.3 (0) | 2021.10.31 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- javascript
- 코드잇
- 스파르타코딩클럽
- js
- 회고
- 깃
- Typescript
- 타입스크립트
- 제이쿼리
- 드림코딩
- 비주얼스튜디오코드
- git
- 김버그
- scss
- vue
- 구름에듀
- CSS
- 파이썬
- vscode
- html
- 리액트
- 코딩앙마
- Til
- TS
- 제로초
- 자바스크립트
- 저스트코드
- map
- Python
- React
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함