상태, 속성 값을 이용해 값을 계산할 때, 상태, 속성 값이 바뀌지 않았다면
재렌더링 시에도 기존 값을 쓰게 하는 것
기존 값을 쓰는 경우
함수 선언이 재렌더링 될 때마다가 아니고, 필요한 경우에만 재선언되도록 하는 것.
상태, 속성 값을 사용한 함수라면 의존성 배열에 넣어준다.
상태, 속성 값이 그대로이지만 부모가 재렌더링 될 때 자식도 같이 재렌더링되는 것을 막는다.
속성값은 값, 함수가 될 수 있는데 값의 경우에는 props로 들어온 값이 바뀌지 않으면되지만,
함수는 부모 단에서 useCallback을 해주지 않으면 전해질 때 매번 생성되어 달라지므로 주의해야한다.
컴포넌트 안에서 사용된 상태 값, 속성 값 또는 이 두가지 값으로 계산된 어떤 값이 있을 때, 그것을 부수효과 함수 안에서 사용했다면, 항상 그 값은 의존성 배열에 나열해줘야 한다.
- 4함수 다 로직에 상태, 속성 값이 쓰였다면 의존성 배열에 넣어줘야한다.
- 의존성 배열의 값에 따라 useMemo, useCallback은 조건부 선언 / useEffect는 조건부 실행이라고 볼 수 있을 것 같다.