jineecode

react에서의 반복문 본문

JS/react

react에서의 반복문

지니코딩 2021. 4. 29. 22:17

react의 jsx에서는 if문처럼 for문 역시도 중괄호 안에 쓸 수 없다.

react에서는 map()을 쓰면 된다.

 

ES6 문법 중 map 메소드를 보자.

  let array = [2, 3, 4];
  // array 내에 모든 데이터에 똑같은 작업을 시켜주고 싶을 때 .map()을 쓴다.

  let newArray = array.map(function (a) {
    return a * 2
  });
  // 또다른 array가 생성된다. [4, 6, 8]
  // a 라는 파라미터: array 안의 하나하나의 데이터, map~는 a에서 꺼내 하나하나 반복문이 돈다.

 

이를 이용하여 유사반복문을 만들어보자

 

  let [title, changeTitle] = useState([
    "오늘 한 일",
    "내일 할 일",
    "모레 할 일",
  ]);
  
          {title.map(function (title) {
          return (
            <ul>
              <li>
                <h3>
                  {title}
                  <button onClick={changeTitleFunction}>바뀌는 제목</button>
                  <span
                    onClick={() => {
                      change(good + 1);
                    }}
                  >
                    {" "}
                    👍
                  </span>
                  {good}
                </h3>
              </li>
              <li>
                <p>2월 17일 발행</p>
                <hr />
              </li>
            </ul>
          );
        })}

title에 map 메소드를 써서 반복시키고자 하는 HTML을 리턴할 수 있다. 매개변수를 적절히 사용하면 title 부분도 알아서 반복된 숫자에 맞게 제목이 들어간다.

 

정석적인 for 반복문을 쓰고자 한다면 return 바깥에 함수를 하나 만들어주어서 다루어야 한다.

 

  function anotherReaf() {
    let array2 = [];
    for (let i = 0; i < 3; i++) {
      array2.push(<div>안녕</div>);
    }
    return array2;
  }

array를 하나 만들어서 push 해주는 방식이다.

 

return(
	...
  {anotherReaf()}
  	...
);

역시나 리턴 안에서 중괄호를 써서 바깥에서 만든 함수를 적용해주면 반복된다.

'JS > react' 카테고리의 다른 글

useEffect 사용  (0) 2021.05.02
react-router-dom 다루기  (0) 2021.04.30
react 환경에서 emmet 적용하기  (0) 2021.04.29
이벤트에 따른 class명 변경  (0) 2021.04.29
이벤트 핸들링  (0) 2021.04.29
Comments