useEffect( 훅을 활용해 다양한 Side Effect (부수효과) 를 일으킬 수 있다.
React에서 일어나는 UI Rendering 과 Side Effect 의 차이를 구분하여 설명할 수 있다.
useEffect Hook 을 활용해 원하는 타이밍 (의존성 배열) 에 Side Effect 를 일으킬 수 있으며, 이 과정에서 일어나는 컴포넌트 렌더링 과정을 설명할 수 있다,
(state + props) => UI
let count = 0
function greetWithSideEffect (name) { // Input
count = count + 1 // Side Effect
return `${name} 님 안녕하세요!` // Output
}
greetWithSideEffect 라는 함수는 이름을 받아 인삿말을 리턴하는 함수다.
하지만 이 함수는 단순히 input 과 output 만 존재하는 함수가 아니다. 실행하는 중간에 함수 외부 세계에 있는 count 라는 변수를 조작한다. 이는 함수의 결과값 이외의 다른 상태를 변경시키는 행위에 해당하므로, Side Effect 가 존재한다 라고 볼 수 있다.
let num = 3
function printNum (number) {
const result = num + number; // Side Effect
return result;
}
printNum(3)
console.log("mount");
}, [] );
useEffect 안에서 clear 하는 방법
useEffect(() => { const intervalId = setInterval (moveNextSlide, 2000); return () => { clearInterval(intervalId); } )