React.Component와 React.PureComponent로 세부적으로 나누어 정의할 수 있다.ES6 클래스를 사용하여 컴포넌트를 정의할 때 기초가 되는 class이다.React.Component를 상속받아야 한다.render() 메서드는 React.Component의 하위 클래스에서 반드시 정의해야하는 메서드이다.모든 컴포넌트들은 생명주기 메서드를 가지고 있고, 이 메서드를 이용하여 특정 시점에 코드가 실행되도록 설정할 수 있다. [생명주기 도표]함수형 컴포넌트는 Life Cycle을 부를 수 없다.[함수형컴포넌트는 Hooks의 useEffect를 찾아볼 것!]
생성되어 DOM에 삽입될 때 아래 메서드들을 순서대로 호출한다.
constructor() React.Component를 상속한 생성자를 구현할 때에는 super(props)를 호출해야한다.this.props가 생성자 내에 정의되지 않아 버그로 이어질 수 있음]this.state를 직접 할당 할 수 있는 유일한 곳, 그 외의 메서드는 this.setState()를 사용한다.this.state를 사용하여 state 초기화이벤트 처리 바인딩render()반드시 구현되어야하는 유일한 메서드이다.render()함수는 순수해야한다.componentDidMount() 혹은 다른 생명주기 메서드 내에서 수행 componentDidMount() props와 state가 변경되면 갱신이 발생하며, 컴포넌트가 다시 렌더링 될 때 다음 순서대로 호출한다.[porps는 NewProps, state는 setState]
render()props를 받거나, setState() 함수를 이용해 상태가 변경될 때componentDidUpdate(prevProps, prevState, snapshot)
componentDidUpdate() props를 비교하여 네트워크 요청을 보내는 작업에 이 메서드를 사용한다.제거되기 직전에 호출되며, 해제되면 절대로 다시 마운트되지 않는다.setState를 호출하면 안된다.