생성자 함수로 컴포넌트가 처음 브라우저에 나타나게 될 때 만들어 지는 과정에서 가장 먼저 실행되는 함수
state 초기설정, 컴포넌트가 만들어지는 과정에서 먼저 해야할 일을 한다.
컴포넌트의 첫번째 렌더링이 마치고 나면 호출되는 메소드로 이 메소드가 호출되는 시점에는 컴포넌트가 화면에 나타난 상태이다.
외부 라이브러리를 사용할 때 여기서 특정 dom 에 사용하기를 코드를 작성할 수 있고 네트워크 요청할 때 여기서 처리한다.
컴포넌트가 나타나고 몇초 뒤에 하고싶다거나 컴포넌트가 나타난 다음에 해당 DOM에서 스크롤이벤트를 읽고 싶을 경우 사용한다.
컴포넌트가 브라우저에 나타난 시점에 어떤 작업을 하고 싶을 때 명시(이벤트 리스닝, api 요청)
컴포넌트가 업데이트 되는 성능을 최적화 시키고 싶을 때 사용하며 컴포넌트가 리렌더링 할지 말지를 결정하는 메소드이다.
부모 컴포넌트가 리렌더링 되면 자식컴포넌트도 같이 리렌더링 된다. 그때 실제로 업데이트 된것만 바뀌게 한다.
버츄얼 돔에 그려서 차이를 비교해 바뀐것만 업데이트 하는데, 버츄얼 돔에 그리는 것도 아껴서 성능을 최적화 시키고 싶을 경우 사용한다.
true나 false를 반환하며, true일 경우 다음을 렌더링을 하고 아니면 멈춘다.
컴포넌트에 변화가 일어나기 직전의 DOM 상태를 가져와서 특정 값을 반환하면 그 다음 발생하게 되는 componentDidUpdate 함수에서 받아와서 사용을 할 수 있다.
렌더링을 한 다음 결과물이 브라우저상에 반영되기 바로 직전에 호출되며, 렌더링 후 업데이트 하고난 다음 스크롤의 위치, 해당 돔의 크기를 가져오고 싶을 때 사용한다.