이젠 함수형 컴포넌트에서 Hook을 이용해서 memo를 사용할 수 있다. useMemo는 obj(함수든 객체든 뭐든)와 [...dependencies] 두가지 인자가 들어간다. useMemo는 dependencies중에 바뀐 값이 있으면 obj를 새로 불러와서 리턴값을 넘겨준다. 바뀐 값이 없으면 obj를 새로 불러와서 리턴하지 않고 이전에 메모리제이션된 dependencies를 넘겨준다. 그런데 중요한것은 새로 리턴된 obj를 불러올 경우 referenece까지 다른 obj를 불러오고 기존에 저장되어있는 dependencies를 불러올 경우에는 reference까지 같은 값을 가져다가 준다는 것이다! 요것을 잘기억하고 있자. 그럼 간단한 앱을 만들거다. input에 입력될때마다 2를 곱한값을 넘겨줄거다. 근데 그 사이에 쓸데없는 for loop이 있어서 계산이 조금 지체되는 효과를 주었다. 이 함수를 slowFunction이라고 부르겠다. 그리고 버튼을 클릭할 때 마다
기본 개념 todo를 React.memo로 한층 더 최적화 가능하다!?!? 그렇다 알고리즘의 memoization 개념을 차용한것이다. 사실 todo가 변경될때 , 변경된 todo만 선별적으로 랜더링하면 되는데 변경되지 않은, 아니 변경하지 않아도 되는 다른 todo까지 함께 랜더링 되어서 비효율적이다. 아래와 같이 말이다. 마지막 todo를 지우면 지워진 todo만 없어지면 되는데 위의 todo까지 모두 랜더링 된다. 그럼 memo를 적용해보자. 참고로 React.memo는 HOC이다. 즉, 랜더링 되는 컴포넌트를 감싸야한다. 정말 간단하다. 그냥 랜더링 되는 자식 컴포넌트에 memo를 입혀주면 된다.(React.pureComponent와 거의 비슷하다고 한다) 그럼 passed된 p