본문 바로가기

프론트엔드

31. Memoization

메모이제이션(Memoization)

여태까지 우리는 리렌더가 얼마나 많이 일어나든 신경쓰지 않고 프로그래밍을 해왔다. 이러한 것이 우리가 테스트를 하는 환경에서는 상관이 없을 수 있으나 만약 웹이 개발이 완료되서 배포됐다고 생각하면 열악한 환경에서는 이런 것이 사용자들에게 불편을 제공할 수 있다. 이를 해결하기 위해서 원하는 부분의 리랜더링을 막을 수 있는 방법이 useMemo와 useCallback이다.

 

useMemo()

변수의 리랜더링을 막는 함수로 변수와 의존성 배열을 받아서 그 배열 안의 값이 바뀔때만 랜더링되도록 만들 수 있다.

 

사용 예시

위의 random 값 aaa는 useMemo를 사용하여 다른 state가 setState로 바뀌어 리랜더링이 일어나도 random 값이 달라지지 않는다.

 

useMemo를 함수에도 적용시킨 예

useCallback()

useCallback은 useMemo의 함수 버전이라고 생각하면 된다. 

 

사용 예시

 

'프론트엔드' 카테고리의 다른 글

33. LazyLoad, PreLoad  (0) 2023.05.01
32. Promise.all()  (0) 2023.05.01
30. Token, XSS, CSRF  (0) 2023.04.23
28. Recrusive Function  (0) 2023.04.23
27. Callback, Promise  (0) 2023.04.23