PS.
간만에 시간이 나서 계속 눈으로만 보던 정보들을 정리
[영어 원문](https://javascript.plainenglish.io/stop-using-usememo-now-e5d07d2bbf70?gi=5f63e57e7141)
[읽은 글 링크](https://velog.io/@lky5697/stop-using-usememo-now?utm_source=substack&utm_medium=email)
`useMemo`를 이용하면서 나도 무분별하게 사용을 했던 일들이 많았다.
특히나 문제가 있었던 이유가 랜더링이나 연산이냐를 두고 혼자 고민을 해서 `내 기준`으로 사용을 했던 것 같다.
근데 요새 많은 기술 블로그에서 나오는 글들을 공장에서 눈으로만 읽었는데, 추후에 또 분명!! 읽을 것 같아서 대략 요약만 남긴다.
#### `useMemo` 란
컴포넌트 리랜더링 간에 결과를 캐싱할 수 있는 훅.
성능상의 이유로만 사용되며, React.memo, useCallback, debouncing, 동시랜더링 등과 같은 기술과 함께 사용해야함.
**대부분의 개발자가 부적절하게 사용하고 있음.**
변수처럼 막 사용하기에 무분별하게 `useMemo`를 사용하는 것을 볼 수 있음.
`useMemo`는 렌더링 단계에서만 값을 제공.
초기화하는 동안 메모제이션은 애플리케이션의 속도를 늦추고 메모리에 지속적으로 쌓임.
### 올바른 `useMemo`를 위한 간단한 정리
1. 큰 연산이 없으면 사용하지 말 것
2. props를 감지해야 되는 경우 `memo`를 사용하는게 더 나아보임.
3. 만약 고비용, 고연산인지 모르겠담면 확인을 해야된다면 `performance.now()` 사용
4. props로 전달되더라도 배열, 객체가 자주 변경되는 경우 useMemo는 항상 재계산되므로 성능적인 효과가 전혀 없음 또한 캐시에도 쌓일 필요 없는데 쌓임.
결국 `useMemo`는 물론 필요는 하지만 "정말 필요한가?"를 생각해야 한다.
간만에 블로그에 글을 적는 것 같다.
오랜만이라 기분이 좋군.
'dev > fe' 카테고리의 다른 글
use-hook-form 예시 만들어 놓기 (0) | 2023.04.25 |
---|---|
nextJS, React에서 폰트가 뿌옇게 나오네? (0) | 2023.04.23 |
NextJS에서 유튜브 썸네일사용하기 (0) | 2022.11.30 |
NextJS Svg 못 읽어오는 경우 해결 (0) | 2022.11.29 |
NextJS TailwindCSS 적용 (0) | 2022.11.29 |
댓글