Coding/React

[React]useEffect 클린업함수

민톨이 2024. 3. 25. 14:59
728x90
  • addEventListener사용시 클린업 해야함
  • 클린업 함수는 이펙트를 사용하는 컴포넌트가 화면에서 사라질때 실행되므로 클린업을 하지않으면 요소가 사라져도 스크롤이벤트가 계속 발생
useEffect(() => {
  function handleScroll(e) {
    console.log(window.scrollX, window.scrollY);
  }
  window.addEventListener('scroll', handleScroll);
  return () => window.removeEventListener('scroll', handleScroll);
}, []);

 

-컴포넌트가 언마운트되어 화면에서 사라질때

1. 첫번째렌더링
2. useEffect코드 실행
3. 컴포넌트가 언마운트되면 클린업실행

-컴포넌트가 계속 렌더링될때 

1. 첫번째렌더링
2. useEffect실행
3. 두번째렌더링
4. 클린업실행

'Coding > React' 카테고리의 다른 글

[React]조건부로 입력필드에 focus하기  (0) 2024.03.25
이벤트응답 - 이벤트핸들러 2  (0) 2024.03.11
이벤트응답 - 이벤트핸들러 1  (0) 2024.03.08
리스트렌더링, key속성  (0) 2024.03.06
조건부렌더링  (2) 2024.03.06