위의 내용을 간단히 정리한다
1. 크게 3개의 페이즈로 구분해서 생각한다 ( mount, update, unmount)
2. 마운트, 업데이트때 해당 컴포넌트의 업데이트 기준을 찾기 위한 props 혹은 state을 구한다 ( getDerivedStateFromProps )
3. shouldComponentUpdate는 해당 기준을 기반으로 컴포넌트가 리랜더링 되야 할 때에 발생 ( 업데이트 내용이 없을 시에는 return null )
4. 그 후에 랜더링이 발생 ( 버츄어 돔 형성 )
5. rendering 이후 상태에 대해 기존 기준(prevProps, prevState) 을 인자로 받아서 스냅샷을 만듦 (componentDidUpdate때 쓰이기 위함)
6. 그 후, 리엑트의 버츄어 돔에 따라 실제 DOM을 업데이트함
7. 컴포넌트가 마운트, 혹은 업데이트 된 이후 componentDidMount,
componentDidUpdate가 발생함.
8. 컴포넌트가 마운트가 끊어지면 componentWillUnmount가 발생함
useEffect(콜백함수, 의존성 배열)
useEffect(function, [state or props])
useEffect(function, [])
useEffect(function)
useEffect(()=>{
return ()=>{}
},[])