inflearn logo
강의

Course

Instructor

Practical React Programming

Performance Optimization Methods to Increase Rendering Speed 1

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

Resolved

373

jotace

1 asked

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

Answer 1

1

landvibe

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

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

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

0

jotace

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

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

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