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
를 호출하면 안된다.