Develop record

[React] map 본문

Frontend/React

[React] map

seong's log 2024. 3. 18. 22:58

map() : 똑같은 html이 반복적으로 출현할 때 for 문 대신 사용 -> { for문 사용 불가 }

모든 array + .map( 콜백함수 : ()안에 들어가는 모든 함수 )

array 의 길이 만큼 function(a,i){  => a : 파라미터 -> array 의 값을 하나씩 출력, i : index -> 0,1,2 ~~

    1. function 코드 반복 실행

    2. return ~ => ~ 을 array 로 담음 

}

import logo from './logo.svg';
import './App.css';
import { useState } from 'react';

function App() {
  let [title, changeTitle] = useState(['남자코트 추천', '강남 맛집 추천', '국내 여행지 추천'])
  let [date, changeDate] = useState('2월 17일 발행')
  let [cnt, plusCnt] = useState([0,0,0])
  let [modal, setModal] = useState(false);

  [1,2,3].map(function(a){ //[]의 길이만큼 return 반복, a : array[i]의 값
    return '1233211'
  })

  return (
    <div className="App">
      <div className='black-nav'>
        <h4>ReactBlog</h4>
      </div>

      {
        //for(){} -> 사용불가
        title.map(function(a, i){ // 반복문이 돌 때마다 i = 1 씩 증가 : index
          let copy = [...cnt]
          return ( 
            <div className='list' key={i}> {/* key 값을 추가해야함 -> 없으면 경고, html 마다 고유의 key 를 가지고 있어야함 */}
              <h3>{title[i]}<span onClick={()=>{           
                copy[i] = cnt[i]+1
                plusCnt(copy)
              }}> ♥</span> {copy[i]}</h3> {/* 하트를 누를 때마다 숫자 1 씩 증가 */}
              <p>{date}</p>
            </div>
          )
        })     
      }
    </div>
  );
}
export default App;

'Frontend > React' 카테고리의 다른 글

[React] props 응용  (0) 2024.03.18
[React] props  (1) 2024.03.18
[React] 동적인 UI (모달창 만들기)  (0) 2024.03.13
[React] Component  (0) 2024.03.13
[React] onclick  (0) 2024.03.13