map함수
를 사용하여 반복되는 컴포넌트
를 렌더링할 수 있다.arr.map(callback, [thisArg])
//array내의 모든 데이터에 똑같은 작업을 시켜주고 싶을 때 사용
var array = [2,3,4];
// array의 각 요소에 x2를 하고 싶을 때
var newarray = array.map(function(a){
//a는 array안 하나하나의 데이터
return a * 10 //[20, 30, 40]
});
① 원하는 자료에 map함수를 써서 그 자료의 갯수만큼 반복문을 돌릴 수 있다.
(아래 예시인경우 3번 반복된다.)
② 반복을 원하는 HTML을 return안에 적어준다.
파라미터
를 추가시 그 파라미터는 array안의 데이터
를 뜻한다.{
반복할데이터.map(() => {
return <HTML>
})
}
function App(){
let [message, setMessage] = useState(['안녕하세요', '반갑습니다', '공부합시다']);
return(
<div>
...
{
message.map(function(a){
return(
<div>
반복하고싶은HTML적어주기
{ a }
// a는 '안녕하세요', '반갑습니다', '공부합시다'
</div>
)
});
}
...
</div>
);
}
👩💻 참고1)
👩💻 참고2) 일반 for반복문을 쓰고싶다면?
① 일반 함수 생성(ex> 반복된UI())
② 함수안에 HTML을 담을 array자료를 생성
③ 함수안에서 for반복문을 사용해 array내에 HTML을 추가한다.
④ 완성된 array를 return해준다.
⑤ 함수의 원하는 곳에 { 함수명() } 데이터바인딩을 해준다.
function App(){
function 반복된UI(){
var array = [];
for ( var i = 0; i < 3; i++) {
array.push(<div>hello</div>);
}
return array
}
return(
<div>
{ 반복된UI() }
</div>
)
}
항상 유일
해야 하기 때문에, 데이터가 가진 고유값
을 key값으로 설정해야한다.