React-클래스형 컴포넌트

Jungmin Lee·2021년 5월 5일
0

react

목록 보기
3/5

클래스 컴포넌트로 카운트 만들어 보기**

import React, { Component } from 'react';

class Counter extends Component {
  constructor(props) {
    super(props);
    this.handleIncrease = this.handleIncrease.bind(this);
    this.handleDecrease = this.handleDecrease.bind(this);
  }
 
  state = {
    counter: 0
  };
  
  handleIncrease () {
    this.setState({
      counter: this.state.counter + 1
      });
  };

  handleDecrease () {
    this.setState({
      counter: this.state.counter - 1
    });
  };

  render() {
    return (
      <div>
        <h1>{this.state.counter}</h1>
        <button onClick={this.handleIncrease}>+1</button>
        <button onClick={this.handleDecrease}>-1</button>
      </div>
    );
  }
}

export default Counter;
  • 클래스 컴포넌트는 필수적으로 Class를 사용하고 Component로 상속을 받아야 한다.

  • 클래스형 컴포넌트에서 상태를 관리 할 때에는 state 사용.
    state 를 선언 할 때에는 constructor 내부에서 this.state 를 설정해주시면 된다.

  • this.setState()는 상태를 변경해줄 때 주로 사용하는데 this.setState 를 사용 할 때는 위 코드 처럼 객체 안에 업데이트 하고 싶은 값을 넣어서 호출하면 된다.

  • this.setState 라는 함수를 사용했을 때 this 는 컴포넌트 인스턴스를 가르켜야 하는데, 그냥 사용 했을 땐 this가 컴포넌트 인스턴스를 가르키지 않기 때문에 위에 코드처럼 binding을 해주거나 화살표 함수로 변경 해주어야 한다.

  • render() 메소드를 써서 JSX문법으로 컴포넌트를 출력한다.
    물론 여기서도 class 이기때문에 state를 호출 시에는 this.props.counter처럼 적어줘야 하고,
    함수는 this.handleIncrease 식으로 작성해줘야한다!.

profile
Front-end developer who never gives up.

0개의 댓글