react native

22.02.27 useEffect 마운트, 언마운트, 업데이트 관리

슈팅스타제제 2022. 3. 10. 14:42

useEffect

첫번째 파라미터 => 함수 

두번째 파라미터 => 의존성 배열 (deps)

 

일단 마운트, 언마운트가 뭔데?!

내가 이거를 확실하게 모르는 이유는 클래스형 컴포넌트의 라이프사이클에 대해서 모르기 때문이다. 

useEffect는 클래스형 컴포넌트의 라이프 사이클을 함수형 컴포넌트에도 사용하기 위해 등장한 훅 함수이다. 

컴포넌트에 진입하여 처음 렌더링을 하고 나면 값이 바뀌더라도 컴포넌트가 렌더링되지 않는다. 

 

하지만 사용자에 의해 입력 받는 값이나 리렌더링이 필요한 경우가 있다.

이때 조건에 따라 렌더링을 할 수 있도록 만들어진 훅 함수이다.

 

의존성 배열이 빈 배열이라면: 컴포넌트가 처음 렌더링될 때만 함수 호출

useEffect에서 함수를 반환할 수 있는데 이것을 cleanup 함수라고 한다. 

cleanup 함수는 useEffect를 뒷정리해주는 역할로 deps가 비어있는 경우에는

렌더링된 후 외부 동작에 의해 컴포넌트가 사라질 때 cleanup 함수를 호출한다. 

 

의존성 배열에 인자가 두개 이상일 때는: 컴포넌트가 인자의 값이 하나씩 변경되는지 판단하고 리렌더링한다. 

이때, 렌더링을 할 필요가 없지만 인자의 값이 바뀌어 불필요한 렌더링이 발생하는 경우 

다음과 같이 두 개 이상의 인자의 값이 변한다면 최종적으로 렌더링이 필요하다는 boolean 값을 전달하는 인자 하나만 넘겨준다. 

 

참고문서링크 

https://react.vlpt.us/basic/16-useEffect.html

 

16. useEffect를 사용하여 마운트/언마운트/업데이트시 할 작업 설정하기 · GitBook

16. useEffect를 사용하여 마운트/언마운트/업데이트시 할 작업 설정하기 이번에는 useEffect 라는 Hook 을 사용하여 컴포넌트가 마운트 됐을 때 (처음 나타났을 때), 언마운트 됐을 때 (사라질 때), 그리

react.vlpt.us

https://reese-dev.netlify.app/react/optimizing_useeffect/

 

useEffect 최적화 하기 (의존성 배열에 condition 전달)

useEffect는 componentDidMount + componentDidUpdate + componentWillUnmount 의 조합이다. 여러 라이프사이클에 해당하는 기능을 useEffect 하나로 모두 처리할 수 있다는건 편리하지만 불필요하게 effect가 실행돼서

reese-dev.netlify.app