inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

실전 리액트 프로그래밍

렌더링 속도를 올리기 위한 성능 최적화 방법1

React.memo 관련 질문이 있습니다.

해결된 질문

379

jotace

작성한 질문수 1

0

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를 왜 모든 컴포넌트에 적용하면 안좋은지 궁금합니다! 

redux react

답변 1

1

이재승

안녕하세요
memo 기능을 사용하면 필연적으로 추가 연산(props 비교)이 필요합니다
하지만 어떤 상황에서는 이러한 연산이 불필요할 수도 있습니다
예를 들면, props 가 항상 바뀌는 상황이 있을 수 있겠네요

아래 링크 참고하시면 좋을 것 같습니다

https://blog.isquaredsoftware.com/2020/05/blogged-answers-a-mostly-complete-guide-to-react-rendering-behavior/#memoize-everything

0

jotace

답변 감사드립니다.
올려주신 링크 꼼꼼하게 읽어보겠습니다.

자동완성기능이 안되네요 ..

0

512

3

화면에 에러가나네요 ...

0

524

2

setValue 함수 질문 있습니다.

0

847

1

찾아야한다 실습 문의

0

475

1

훅 기초 익히기 - 배치 처리와 순차적 처리의 차이

0

482

1

cra, next.js 관련 질문 드립니다!

0

610

1

useState 배열 비구조화 문법 질문!

0

258

1

Uncaught TypeError: Failed to execute 'removeChild' on 'Node': parameter 1 is not of type 'Node'

1

1089

2

Saga 오류 이거 혹시 왜이런지 알수 있을까요?

0

377

2

http://localhost:3001/user/search?keyword=u 이걸로 데이터를 보는데 저는 사이트에 연결할 수 없다고 나오네요

0

673

1

match

1

498

1

버튼이 생성되지 않습니다 .

0

288

1

혹시 import 옆에 파일 사이즈 표시 어떻게 하나요?

0

263

1

saga 문제

0

250

1

에러가 발생하는데 이유가뭘까요..?

0

394

2

선생님과 똑같이 했는데 다 rendering 됩니다.

0

207

1

컴포넌트와 컨테이너의 기준

0

319

1

커스텀훅의 개념과 함수차이

1

1202

1

useEffect 실전 활용법(1) 강의에서 질문있습니다.

0

342

1

리덕스, 사가파일들의 관리

0

210

1

useImperativeHandle 질문 입니다.

0

285

1

컴파일 문의드립니다.

0

208

1

Context API vs Redux 사용 빈도

0

217

1

10분도 안들었는데 환불안됩니까?

0

280

1