인프런 커뮤니티 질문&답변

kwangjin12님의 프로필 이미지
kwangjin12

작성한 질문수

따라하며 배우는 리액트 A-Z[19버전 반영]

네비게이션 바 컴포넌트 생성하기

useeffect 관련 (네이게이션 바 컴포넌트 생성 수업)

작성

·

365

1

안녕하세요 질문 남깁니다!

navigation bar 생성 수업인데요, 마지막 쯤에 소개된 useEffect함수를 사용했는데요, 이전에 todoapp에 나왔던onClick, onSubmit 등은 해당 이벤트가 발생하면 그것을 함수에 넘겨줘서 state, prop들을 update해서 반영하는 방식이었던 거 같은데요,

useEffect같은 경우에는 선언은 해뒀지만 언제 사용되는지 따로 명시가 되어 있지 않은 거 같은데 해당 함수의 경우는 렌더링 될 때마다 불리는 걸까요?

 

답변 2

1

John Ahn님의 프로필 이미지
John Ahn
지식공유자

안녕하세요!

useEffect는 먼저 렌더링이 한번 된 이후에 호출이 되게 됩니다.

 useEffect(() => {
   
  }, [])


그리고 만약 그 이후에도 호출이 되게 하려면

종속성 배열에 state나 props를 넣어주면 그 state나 props가 변할 때마다 다시 호출이 되게 됩니다.

 useEffect(() => {
   
  }, [종속성])


감사합니다.

0

kwangjin12님의 프로필 이미지
kwangjin12
질문자

안녕하세요 관련되어 추가질문이 있습니다.

useEffect 내부에 return부분은 unmount되는 시점에 호출된다고 구글링으로 찾았는데, 실제로 unmount되는 시점이 언제일까요? (앱을 종료할 때 종료해주는 개념일까요?)

 

그리고 종속성을 추가해주지 않았음에도 scroll을 위아래 움직일 때 계속 배너 색이 바뀔 수 있는 이유가 궁금합니다 (useEffect가 한 번만 호출이 되더라도 계속 기능을 하는 건지 헷갈리는데 그렇다면 종속성을 아예 넣지 않은 경우와 같은 거 같아서요)

 

kwangjin12님의 프로필 이미지
kwangjin12

작성한 질문수

질문하기