useEffect무한반복해결
-
useMemoReact 2022. 2. 20. 16:30
useMemo를 사용해야 할 필요성이 있는 경우는 크게 두가지 경우가 있다. 1. 연산이 큰 작업이 반복되어서 호출 될 때 2. Referential equility가 발생할 경우에. 먼저 첫번째 경우를 살펴보자. 위와 같은 예제에서 input의 값을 증가시키면 그 두배가 되는 값을 화면에 렌더링 해주는데 약 0.5초의 시간이 걸린다. slowFunction에서 반복을 100000000만큼 돈후에 그 값을 두배로 해주기 때문이다. 여기까지는 이해가 쉽다. 하지만 여기에서 changeTheme버튼을 누르면 어떻게 될까? 마찬가지로 0.5초의 시간이 흐른후 화면의 theme색깔이 바뀐다. 왜그럴까? 이는 리엑트에서 state를 업데이트 하면 컴포넌트 전체를 다 리렌더링 하기 때문이다. 즉, 시간이 걸리는 작..