평행코드

[REACT JS] Cleanup 본문

React

[REACT JS] Cleanup

나의 오류는 누군가 겪었던 오류 2023. 3. 28. 14:08

컴포넌트가 destroy될 때도 코드를 실행할 수 있다.

useEffect는 함수를 받고,

이 함수는 dependency가 변화할 때 호출된다.

현재는 dependency가 비어있으니,

컴포넌트가 처음 생성될 때 함수가 호출된 후 다시 호출되지 않는다.

그래서 컴포넌트가 파괴될 때도 함수를 실행하고 싶다면,

useEffect 함수가 새로운 함수를 return하게 만들어주어야한다.

 

왜냐면 deps 가 비어있으면 자동으로 컴포넌트가 파괴될 때 cleanup 함수가 실행되는데

그과정이 리렌더링으로 useEffect함수가 실행되고,

클린업하면서 전에있던 이펙트인 console.log("hi :)")가 삭제되며,

새로운 이펙트 함수인 return함수가 실행되기 때문이다.

'React' 카테고리의 다른 글

[REACT JS] 기초 JSX문법 3개  (0) 2023.03.29
[REACT JS] map( ) 함수  (0) 2023.03.28
[REACT JS] useEffect  (0) 2023.03.28
[REACT JS] CRA(create-react-app)  (0) 2023.03.28
[REACT JS] prop  (0) 2023.03.27