갈푸라떼
갈푸라떼는 개발중
갈푸라떼
전체 방문자
오늘
어제
  • 분류 전체보기 (232)
    • CS (0)
      • CSinfo (0)
    • Frontend (15)
      • HTML,CSS (1)
      • Javascript (2)
      • React (0)
      • React Hook (12)
    • Backend (0)
      • Python (0)
      • Node.js (0)
      • php (0)
    • DB (2)
      • MySQL (2)
      • BigQuery (0)
      • Mongodb (0)
    • Study (186)
      • JavaScript (72)
      • JavaScript(Clean code) (50)
      • Node.js (11)
      • HTML,CSS (13)
      • React (30)
      • TypeScript (10)
      • React-Native (0)
    • Error (2)
      • error (2)
    • Git (22)
      • Git (22)
    • Help Coding (4)
      • Useful websites (3)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • Github

공지사항

인기 글

태그

  • Babel
  • 프로토타입
  • 컴파일러
  • Arrow
  • ECMAScript
  • nodemon
  • 이터러블
  • this
  • 원시타입
  • SPREAD
  • 자바스크립트엔진
  • symbol
  • 렉시컬 환경
  • class
  • 네이밍
  • 인터프리터
  • prototype
  • 상속
  • 객체타입
  • 정적 레벨
  • 함수
  • structure
  • 싱글스레드
  • function
  • 스코프 체인
  • PM2
  • 심볼
  • 실행 컨텍스트
  • 호이스팅
  • 오버라이딩

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
갈푸라떼

갈푸라떼는 개발중

Study/React

[React_study] React에서의 List 생성 (map)

2022. 6. 7. 01:21

* 자바스크립트에서의 map 함수 사용하는 방법

  • 모든 array 자료에는 map() 메서드를 사용할 수 있다.
  • map() 메서드가 가지고 있는 기능을 예시를 통해 확인

* 예시 코드 (기능1)

- array에 들어있는 자료갯수만큼 그 안에 있는 코드를 반복실행

- console.log(1) 3번 실행

const array = [1,2,3];
array.map(function(){
  console.log(1)
});

* 예시 코드 (기능2)

- 콜백함수의 첫번째 인자값을 넣어서 array안에 있던 모든 자료를 하나씩 출력해준다.

- 2, 3, 4가 콘솔창에 출력된다.

const array = [1,2,3];
array.map(function(a){
  console.log(a)
});

* 예시 코드 (기능3)

- 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환한다.

- newArray를 출력하면 [10, 20, 30] 이 출력된다.

const array = [1,2,3];
const newArray = array.map(function(a){
  return a * 10
});

console.log(newArray)

* JSX안에서 html을 반복생성하기

- 리액트 중괄호안에서 html을 반복생성하고 싶다면 map을 이용해도된다.

- <div>Hello world</div>가 3개 생성된다.
(참고) map 반복문으로 반복생성한 html엔 key={i} 이런 속성을 추가해야한다.

function App (){
  return (
    <div>
      { 
        [1,2,3].map(function(){
          return ( 
            <div>Hello world</div> 
          )
        }) 
      }
    </div>
  )
}

 

  • [1, 2, 3]이라는 array에 map 메서드를 이용하여서 그안의 자료 갯수만큼 내부의 코드를 실행시켜준다.
  • return안에 있는 코드를 array안에 담아서 반환해준다.
  • [ <div>Hello world</div>, <div>Hello world</div>, <div>Hello world</div> ] 이런식으로 값이 남게 되고
  • 해당 값을 html로 보게 되면 아래와 같이 보인다. 그래서 map을 사용하여도 반복생성이 가능하다.

<div>Hello world</div>
<div>Hello world</div>
<div>Hello world</div>

* JSX안에서 html을 반복생성하기 예시 코드

function App (){
  const [title, setTitle] = useState(['Hello', 'world', 'bye']);
  
  return (
    <div>
      { 
        title.map(function(title){
          return (
            <div className="list">
              <h4>{ title }</h4>
            </div> 
          )
        }) 
      }
    </div>
  )
}​

 


* (참고) 일반 for 반복문을 사용하고 싶다면

  1. html들을 담을 array 자료를 하나 만들어준다.
  2. 일반 for 반복문을 이용해서 반복문을 돌린다.
  3. 반복될 때 마다 array자료에 <div>를 하나씩 추가해준다.
  4. 원하는곳에서 {array자료}를 사용하면 된다.

* 일반 for 반복문 예시 코드
- for 문법은 JSX안에서 사용할 수 없어서 아래의 예시처럼 바깥에서 사용하면 된다.

function App (){
  
  const array = [];
  for (let i = 0; i < 3; i++) {
    array.push(<div>Hello world</div>)
  }
  return (
    <div>
      { array }
    </div>
  )
}

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

[React_study] 사용자가 입력한 글 다루기(input)  (0) 2022.06.07
[React_study] 자식이 부모의 state 가져다쓰고 싶을 때는 props  (0) 2022.06.07
[React_study] 리액트 환경에서 동적인 UI 만드는 법  (0) 2022.06.06
[React_study] 많은 div들을 한 단어로 축약하려면 (Component)  (0) 2022.06.06
[React_study] array, object state 변경하는 법  (0) 2022.06.06
    'Study/React' 카테고리의 다른 글
    • [React_study] 사용자가 입력한 글 다루기(input)
    • [React_study] 자식이 부모의 state 가져다쓰고 싶을 때는 props
    • [React_study] 리액트 환경에서 동적인 UI 만드는 법
    • [React_study] 많은 div들을 한 단어로 축약하려면 (Component)
    갈푸라떼
    갈푸라떼

    티스토리툴바