🤦♀️ 글쓴이는
언마운트(componentWillUnmount)
의 중요성을 간과한 경험을 통해 글을 작성하였다...
useEffect
는 함수형 프로그래밍 Hook중 하나이다.componentDidMount
componentDidUpdate
componentWillUnmount
의 기능을 합쳐놨다고 생각하면된다.두 번째 파라미터([dep])
의 값이 변경되면 컴포넌트는 리렌더링
된다. 이 글은 useEffect의 useEffect 공식문서를 읽은 후 보길 추천한다.
구독(subscription)
하는 화면이 있다.clena-up (componentWillUnmount)
을 하지 않았다고 생각해 보자.다른 화면으로 이동할 때(언마운트) 구독 해지를 하지 않았으므로 계속해서 데이터를 읽으며 메모리 누수가 발생한다.
useEffect
에서 함수를 반환 할 수 있는데 이를clean-up
함수라고 부른다.
useEffect(() => {
return () => {
// 구독 해지 로직 작성
};
}, []);
useEffect(() => {
return () => {
// 구독 해지 로직 작성
};
}, [id]);
useEffect
를 처음 사용할 때 clean-up
함수를 놓치기 쉽다. 글쓴이처럼,,, 🤦♀️
useEffect
는 함수형 프로그래밍에서 매우 중요한 기능을 가진 Hook중 하나이다.
기본 기능뿐 아니라 clean-up
함수의 중요성을 모두 알길 바라며 글을 마친다.