React.memo 관련 질문이 있습니다.
React.memo 가 props 비교를 통해 리렌더링을 막아줄 수 있는 유용한 기능이라는 것을 알게되었는데요,
그렇다면 리액트에서는 왜 React.memo 적용을
모든 컴포넌트에 default로 제공하지 않는지 궁금합니다.
제가 구글링을 해본 결과
2년 전에 Dan Abramov가 트위터에 이런 글을 올렸더라구요..
``` Ask yourself:
Why don’t you put Lodash memoize() around every function? Wouldn’t that make all functions faster? Do we need a benchmark for this? Why not?
```
저는 React.memo가 특정 컴포넌트의 이전 상태의 props를 기억하고 있다가 새로 렌더되어야할 상황에 전달된 props와의 비교를 통해 선택적으로 렌더링을 결정하는것이라고 생각했는데, 저 트위터를 보면 마치 React.memo가 컴포넌트 전체를 메모리 어딘가에 기억해야하고 이 작업이 오히려 성능에 악영향을 줄 수 있다는 뉘앙스로 들렸습니다.
횡설수설 서론이 길어진 것 같아서 죄송합니다. React.memo를 왜 모든 컴포넌트에 적용하면 안좋은지 궁금합니다!
Answer 1
1
안녕하세요
memo 기능을 사용하면 필연적으로 추가 연산(props 비교)이 필요합니다
하지만 어떤 상황에서는 이러한 연산이 불필요할 수도 있습니다
예를 들면, props 가 항상 바뀌는 상황이 있을 수 있겠네요
아래 링크 참고하시면 좋을 것 같습니다
https://blog.isquaredsoftware.com/2020/05/blogged-answers-a-mostly-complete-guide-to-react-rendering-behavior/#memoize-everything
자동완성기능이 안되네요 ..
0
499
3
화면에 에러가나네요 ...
0
515
2
setValue 함수 질문 있습니다.
0
840
1
찾아야한다 실습 문의
0
468
1
훅 기초 익히기 - 배치 처리와 순차적 처리의 차이
0
469
1
cra, next.js 관련 질문 드립니다!
0
604
1
useState 배열 비구조화 문법 질문!
0
252
1
Uncaught TypeError: Failed to execute 'removeChild' on 'Node': parameter 1 is not of type 'Node'
1
1081
2
Saga 오류 이거 혹시 왜이런지 알수 있을까요?
0
369
2
http://localhost:3001/user/search?keyword=u 이걸로 데이터를 보는데 저는 사이트에 연결할 수 없다고 나오네요
0
655
1
match
1
494
1
버튼이 생성되지 않습니다 .
0
285
1
혹시 import 옆에 파일 사이즈 표시 어떻게 하나요?
0
262
1
saga 문제
0
247
1
에러가 발생하는데 이유가뭘까요..?
0
388
2
선생님과 똑같이 했는데 다 rendering 됩니다.
0
202
1
컴포넌트와 컨테이너의 기준
0
314
1
커스텀훅의 개념과 함수차이
1
1197
1
useEffect 실전 활용법(1) 강의에서 질문있습니다.
0
337
1
리덕스, 사가파일들의 관리
0
206
1
useImperativeHandle 질문 입니다.
0
279
1
컴파일 문의드립니다.
0
201
1
Context API vs Redux 사용 빈도
0
210
1
10분도 안들었는데 환불안됩니까?
0
275
1

