위 파일에서 각 코드가 어떤 역할을 하는지 알아보겠습니다.
컴포넌트에 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> ); }