함수 내에서 어떤 구현이 함수 외부에 영향을 끼치는 경우, 해당 함수는 Side Effect가 있다고 한다.
React에서
Side Effect가 발생하는 경우
1. 네트워크 요청을 하는 경우 (fetch API..)
2. 타이머 사용(setTimeout)
3. LocalStorage
순수 함수는 함수에 입력된 값만이 함수의 결과에 영향을 주고, 입력된 값을 수정하지 않는 함수를 말한다.
Math.random()은 항상 같은 값이 리턴되지 않으므로 순수 함수가 아니다.
useEffect는 컴포넌트 내에서 side Effect를 실행할 수 있게 하는 Hook이다.
useEffect(함수,[종속성1, 종속성2, ...])
두 번째 인자에 따라서 함수가 실행된다.