useEffect가 단순히 React의 lifecycle을 대체하기 위한 기능의 메소드는 아니지만 단순히 function components에서 lifecycle을 구현하기 위해 useEffect를 사용할 경우를 위해 케이스를 정리한 글입니다.
useEffect(() => console.log('Mount && change'));
useEffect(() => console.log('Mount'), []);
useEffect(() => console.log('Mount & Change of second parameter'), [state, porps]);
useEffect(() => () => console.log('Unmount && change'));
useEffect(() => () => console.log('Unmount'), []);
useEffect(() => () => console.log('Unmount'), [state, porps]);
마운트 되었을때는 console.log(‘Mount’);
만 실행되고 언마운트되었을때는 console.log('Clear');
만 실행된다. 그리고 리렌더링 되었을 때는 먼저 console.log('Clear');
를 실행하고 console.log('Mount’);
를 실행한다. 즉, 클리어를 먼저 실행한 후 마운트 코드를 실행한다.
useEffect(() => {
console.log('Mount');
return () => console.log('Clear');
});
useEffect(() => {
console.log('Mount’); // === componentDidMount
return () => console.log('Clear’); // === componentDidUnmount
}, []);
useEffect(() => {
console.log('Mount');
return () => console.log('Clear');
}, [state, porps]);