<aside> <img src="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/f765100f-b481-437e-b531-5aae8d9bc5fe/1200px-React-icon.svg.png" alt="https://s3-us-west-2.amazonaws.com/secure.notion-static.com/f765100f-b481-437e-b531-5aae8d9bc5fe/1200px-React-icon.svg.png" width="40px" /> React Hook을 공부하면서 기록합니다.

</aside>

01. 당연하지만서도 의존성 배열에 의존되는 값을 빠짐 없이 잘 넣자!

function Profile({ userId }) {
  const [user, setUser] = useState();
  useEffect(() => {
    fetchUser(userId).then((data) => setUser(data)); // -> 서버에 유저 정보 호출
  }, [userId]); // -> 유저 정보 변경시 부수효과가 발동을 해야 함으로 userId를 deps에 넣어준다.
  // ..
}

02. 외부 함수가 useEffect에서 사용된다면?

정답은 당연하게도 의존성 배열(deps)에 넣어 준다 이다.

export default function Profile({ userId }) {
  const [user, setUser] = useState();

  const fetchAndSet = useCallback(async () => {
    const data = await fetchUser(userId);
    setUser(data);
  }, [userId]);

  useEffect(() => {
    fetchAndSet();
  }, [fetchAndSet]); // -> 내부에서 사용된 외부 함수를 deps에 넣어주자!
}

03. 의존성 배열을 입력하지 않을 수 있다면 없이 사용하도록 하자