더북(TheBook)

위 파일에서 각 코드가 어떤 역할을 하는지 알아보겠습니다.

컴포넌트에 state를 설정할 때는 다음과 같이 constructor 메서드를 작성하여 설정합니다.

constructor(props) {
  super(props);
  // state 초깃값 설정하기
  this.state = {
      number: 0
    };
  }

이는 컴포넌트의 생성자 메서드인데요. 클래스형 컴포넌트에서 constructor를 작성할 때는 반드시 super(props)를 호출해 주어야 합니다. 이 함수가 호출되면 현재 클래스형 컴포넌트가 상속하고 있는 리액트의 Component 클래스가 지닌 생성자 함수를 호출해 줍니다.

그다음에는 this.state 값에 초깃값을 설정해 주었습니다. 컴포넌트의 state는 객체 형식이어야 합니다.

이제 render 함수를 확인해 봅시다.

render() {
  const { number } = this.state; // state 조회할 때는 this.state 조회합니다.
  return (
      <div>
        <h1>{number}</h1>
        <button
        // onClick 통해 버튼이 클릭되었을  호출할 함수를 지정합니다.
        onClick={() => {
          // this.setState 사용하여 state 새로운 값을 넣을  있습니다.
          this.setState({ number: number + 1 });
          }}
        >
          +1
        </button>
      </div>
    );
  }
신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.