그냥 계속 써왔던 상태관리 함수
마운트(렌더링) 이후 + 업데이트(리렌더링) 이후
컴포넌트가 언마운드 되기 전이나 업데이트되기 직전에 어떠한 작업을 수행하고 싶다면 useEffect 에서 뒷정리(cleanup) 함수를 반환해 주어야 합니다.
코드가 그냥 더 복잡해진것 같은데..이유가 있다고합니다.
useReducer 를 사용했을 대의 가장 큰 장점은 컴포넌트 업데이트 로직을 컴포넌트 바깥으로 빼낼수 있다는 것 입니다.
렌더링 될때마다 계산하는 걸 만들었는데.. 숫자를 등록할 때뿐만 아니라 인풋 내용이 수정될 때도 우리가 만든 getAverage 함수가 호출되는 것을 확인할 수 있습니다. 인풋 내용이 바귀 때는 평균값을 다시 계산할 필요가 없는데 이렇게 렌더링 할 때마다 계산하는것은 낭비입니다. useMemo Hook을 통해 최적화 시킬수 있습니다.
10장에서 사용됩니다.
주로 렌더링 성능을 최적화해야 하는 상황에서 사용합니다.
주로 숫자, 문자열, 객체처럼 일반 값을 재사용하려면 useMemo를 사용하고, 함수를 재사용하려면 useCallback을 사용하세요.
10장에서 사용됩니다.
클래스의 Ref 생각하면 용도를 알 수 있습니다.