useEffect
첫번째 파라미터 => 함수
두번째 파라미터 => 의존성 배열 (deps)
일단 마운트, 언마운트가 뭔데?!
내가 이거를 확실하게 모르는 이유는 클래스형 컴포넌트의 라이프사이클에 대해서 모르기 때문이다.
useEffect는 클래스형 컴포넌트의 라이프 사이클을 함수형 컴포넌트에도 사용하기 위해 등장한 훅 함수이다.
컴포넌트에 진입하여 처음 렌더링을 하고 나면 값이 바뀌더라도 컴포넌트가 렌더링되지 않는다.
하지만 사용자에 의해 입력 받는 값이나 리렌더링이 필요한 경우가 있다.
이때 조건에 따라 렌더링을 할 수 있도록 만들어진 훅 함수이다.
의존성 배열이 빈 배열이라면: 컴포넌트가 처음 렌더링될 때만 함수 호출
useEffect에서 함수를 반환할 수 있는데 이것을 cleanup 함수라고 한다.
cleanup 함수는 useEffect를 뒷정리해주는 역할로 deps가 비어있는 경우에는
렌더링된 후 외부 동작에 의해 컴포넌트가 사라질 때 cleanup 함수를 호출한다.
의존성 배열에 인자가 두개 이상일 때는: 컴포넌트가 인자의 값이 하나씩 변경되는지 판단하고 리렌더링한다.
이때, 렌더링을 할 필요가 없지만 인자의 값이 바뀌어 불필요한 렌더링이 발생하는 경우
다음과 같이 두 개 이상의 인자의 값이 변한다면 최종적으로 렌더링이 필요하다는 boolean 값을 전달하는 인자 하나만 넘겨준다.
참고문서링크
https://react.vlpt.us/basic/16-useEffect.html
https://reese-dev.netlify.app/react/optimizing_useeffect/
'react native' 카테고리의 다른 글
22.06.10 invalid Hook (0) | 2022.06.10 |
---|---|
22.05.30 {"_U": 0, "_V": 0, "_W": null, "_X": null} (0) | 2022.05.30 |
22.03.01 navigation.navigate 타입 지정 (1) | 2022.03.01 |
22.02.27 Can't perform a React state update on an unmounted component (0) | 2022.02.27 |
22.02.05 useEffect안에서 useQuery 쓰고 싶을 때 (0) | 2022.02.05 |