• 카테고리

    질문 & 답변
  • 세부 분야

    프론트엔드

  • 해결 여부

    미해결

useEffect

20.09.28 15:26 작성 조회수 175

3

강의 너무 잘 보고 있습니다.

1. useEffect(callback) => 컴포넌트 렌더링 후에만 딱 1번 실행이고, useEffect(callback) 과 useEffect(callback,[])은 같은 거라고 보면 될까요?

2. useEffect(callback,userId) => 컴포넌트 렌더링 후 1번 실행 그 후에는 userId변할때만 실행인지, 컴포넌트 렌더링 관련없이 userId변할때만 실행인지 궁금합니다~

답변 2

·

답변을 작성해보세요.

8

1. useEffect(effect) ==> 컴포넌트가 렌더링될 때마다 호출됩니다.
2. useEffect(effect, []) ==> 첫 번째 렌더링 후에만 호출됩니다.
3. useEffect(effect, [userId]) ==> 첫 번째 렌더링 후에 호출되며, 이후에 userId가 변경될 때마다 호출됩니다.

3번에서 userId 라는 값은 항상 렌더링과 관련된 값이어야 합니다.
`렌더링과 관련된 값` 이라는 것은 그 값이 변경되면 컴포넌트가 다시 렌더링 되는지를 보고 알 수 있습니다.
어떤 변수의 값이 변경됐는데 컴포넌트가 다시 렌더링되지 않는다면 그 변수는 deps 배열에 넣을 필요가 없습니다.

결국 `렌더링과 관련된 값` 이라는 것은 컴포넌트 상태값, 속성값 등을 말하는거구요.
전역 변수 등은 `렌더링과 관련된 값` 이 아닙니다.

2

으하핳님의 프로필

으하핳

질문자

2020.09.28

도움이 많이 되었습니다.감사합니다.