[React] useEffect cleanup

빵호·2021년 12월 26일
0

React

목록 보기
5/8
post-thumbnail

useEffect는 class 생명주기 메서드인 componentDidMount와 componentDidUpdate, componentWillUnmount가 합쳐진 것이다.

이중 컴포넌트가 사라질 때(componentWillUnmount) 특정 작업을 처리하는 방법에 대해 알아보자.

  useEffect(() => {
    console.log('EFFECT RUNNING');
    
    return () => {
      console.log('EFFECT CLEANUP');
    };
  });

사용법은 간단하다 return 안에 eeffect 이후에 어떻게 정리(clean-up) 할 것인지 표시하면 된다.

  useEffect(() => {
    const identifier = setTimeout(() => {
      setFormIsValid(
        enteredEmail.includes('@') && enteredPassword.trim().length > 6
      );
    }, 500);

    return () => {
      clearTimeout(identifier);
    };
  }, [enteredEmail, enteredPassword]);

위 코드는 유효성 검사를 할 때 사용자의 입력이 끝나고 500 밀리 세컨드가 지난 후 유효성 검사를 실행하는 코드이다.

cleanup을 이용하면 클로저의 메모리 해제를 통해 최적화를 한다거나 네이버같이 검색어 자동완성 기능을 구현할 때 백엔드 통신 횟수를 줄여 서버의 과부하를 막을 수 있다.

profile
늘 한결같이 꾸준히

0개의 댓글