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
- chrome
- Next
- 코테
- Android
- 오퍼월
- 오블완
- react-native
- NanoHttpd
- toml
- nginx
- python
- css
- React
- 광고 id
- 파이썬
- TypeScript
- AWS
- 코딩테스트
- nuxt
- 티스토리챌린지
- JavaScript
- Jenkins
- docker
- spring boots
- it
- 개발
- 백준
- Express
- EC2
- kotlin
Archives
- Today
- Total
내맘대로 개발일지
[NextJS] .map() 함수 사용 & Components Map 하는 방법 본문

📱테스트 환경
"react": "18.2.0"
"react-dom": "18.2.0"
"typescript": "^5.1.6"
😢 내가 겪은 문제
.map() 함수는 배열을 변환하거나 새로운 배열을 생성할 때 사용한다.
이 함수는 배열 내의 각 요소에 대해 지정된 함수를 호출하하게 되는데
배열의 각 요소를 하나씩 가져와서 그 요소를 변환한 후 새로운 배열로 만들어주는 역할을 한다.
const numbers = [1, 2, 3, 4, 5];
const doubledNumbers = numbers.map((number) => number * 2);
// doubledNumbers = [2, 4, 6, 8, 10]
이렇게 아주 간단하게 사용할 수 있다.
const names = ["Alice", "Bob", "Charlie"];
const nameLengths = names.map((name) => name.length);
// nameLengths = [5, 3, 7]
아니면 이렇게도 응용할 수 있다.
이렇게는 보통 return 문 위에 이제 함수를 생성하거나 뭔가 처리를 할 때 사용하고, 컴포넌트를 반복해서 돌릴 때도 있다.
{items.map((value, item) => (
<div key={item}>
<p>ID: {value.id}</p>
<p>Name: {value.name}</p>
</div>
}
key 값은 반드시 넣어주는 게 좋은데, 이유는 key 속성은 React에서 목록을 렌더링할 때 각 항목을 구별하는 역할을 하기 때문이다.
그럼 이제, 배열없이 해당 컴포넌트를 반복해서 돌리고 싶을 때가 있다.
초보였을 시절에는 이렇게 작성했다. ( 문제는 없었다. )
const emptyArray = [1, 2, 3, 4, 5];
...
{emptyArray.map((value, item) => {
return <div key={item}}>{value}</div>
}}
근데 이렇게 짜면 누가봐도 코딩 초짜가 짠 것 처럼 보인다. 내가 짜면서도 너무 초보같아서 부끄러운 코드였다.
더 좋은 방법이 있는데 .. 다음과 같이 짜면 아주 간단하다.
{Array(5).fill(null).map((value, item) => {
return <div key={item}>{value}</div>
}
)}
돌리고 싶은만큼 배열에 숫자로 주고 나면 원하는 만큼 컴포넌트를 반복해서 돌릴 수 있다.
더 좋은 방법이 있다면 공유해주면 감사하겠다 !!
'Javascript > Next' 카테고리의 다른 글
| [NextJS] 모바일인지 PC 인지 구별하는 방법 (0) | 2023.08.30 |
|---|---|
| [NextJS] canvas 이용해서 썸네일 만들기 (5) | 2023.08.29 |
| [NextJS] onPress vs onClick 차이점 (0) | 2023.08.28 |
| [NextJS] String -> Number , Number -> String (0) | 2023.08.28 |
| [NextJS] map 함수 스페이스바 있는 컬럼명 데이터 꺼내기 (0) | 2023.08.25 |