useState와 함께 가장 대표적인 hook 중 하나이다.
Class에서 제공하는 method 중
ComponentDidMount, ComponentDidUpdate, ComponentWillUnmount
lifecycle method 기능을 제공한다.
ComponentDidMount처럼
ComponentDidUpdate처럼
ComponentWillUnmount처럼
위 예시처럼 상태가 변화하면 useEffect가 즉시 실행되고,
화면을 새로고침해서 새롭게 rendering 되는 경우에도 useEffect가 즉시 실행된다.
useEffect의 전달인자는 다음과 같다.
- 첫번째 인자 : Effect 발동 시 즉시 실행되는 함수
- 두번째 인자 : 해당 value 상태변화에만 반응하도록 하는 제한인자(변수)
※위 인자만 보았을 때는 ComponentDidMount, ComponentDidUpdate에 대한 기능만 제공하는 것처럼 보인다.
※ComponentDidWillUnmount(callback만 입력하였을때) 기능도 제공함을 기억하자.