리액트의 컴퍼넌트 중 클래스 컴퍼넌트
라이프라이클>>클래스 컴포넌트에서 자주 사용
State(상태)
리액트에서 state는 리액트 Component의 상태를 의미한다.
리액트 컴포넌트의 데이터를 뜻하며 리액트의 변경 가능한 데이터를 의미한다.
state는 개발자가 정의한다.
기본적으로 State는 렌더링이나 데이터 흐름에 사용되는 값만 state에 포함을 시켜야 한다.
만약 렌더링이나 데이터 흐름에 관련 없는 값을 포함하면 불필요한 경우에 컴포넌트가 다시 렌더링 되어서 성능을 저하시킬 수 있다.
그렇기 때문에 반드시 렌더링이나 데이터 흐름에 사용되는 값만 state에 포함을 시켜야 한다.
그렇지 않으면 Component의 instance필드에 정의하면 된다.
결국 state는 javaScript의 객체이다.
이 객체는 likeButton이라는 component를 가르키는 건데 모든 component에는
constructor라는 이름의 함수가 존재하는 데
생성자를 뜻하며 클래스가 생성될 때 실행되는 함수이다.
this.state가 현재 컴포넌트의 스테이트를 정의하는 함수이다.
이처럼 class컴포넌트의 경우 state를 생성자 내부에서 정의하게 된다.
(함수 컴포넌트는 usehook을 이용하여 정의)