useEffect(() => {
});
useEffect(() => {
}, []);
useEffect(() => {
setData(data);
}, [data]);
useEffect(() => {
setData1(data1);
setData2(data2);
}, [data1, data2]);
그렇기 때문에 관심사 별로 나누어 useEffect 를 쓰면 좋다.
예시) react 를 사용해서 spa 를 만드는데 그렇게 되면 해당 페이지를 벗어나도 window의 이벤트 리스너는 계속 살아있다. 그렇기 때문에 이 이벤트 리스너를 없앨 필요가 있다. 이때 return에 이 를 작성해 clean up 해 줄 수 있다!
useEffect(() => {
window.addEventListener("scroll", handleScroll)
return () => {
window.removeEventLisnter("scroll", handleScroll)
}
}, []);
(밖의 변수를 내부함수가 변경할 경우만 sideEffect 라고 생각했다. 하지만 그것보다 더 큰 범위를 sideEffect가 포함하고 있었다)