작성
·
328
0
안녕하세요
data와 함수들을 같이 전달했을 때 '객체'의 재 생성이 일어나는데, useMemo로 래핑 했음에도 왜 dispatches의 재 생성을 막을 수 없는건가요?
답변 1
0
안녕하세요 이정환입니다.
제가 작성해주신 질문을 제대로 이해했는지 모르겠습니다만...
우선 함수들이 useCallback으로 래핑되어 재 생성되지 않는다고 해도
data는 재 생성되기 때문에 결론적으로 Provider에게 value Prop으로 전달되는 객체 자체는 재 생성됩니다. 따라서 하위 컴포넌트들이 리렌더 됩니다.
이것을 막기 위해서는 재 생성되지 않는 함수들만 따로 모아서 별도의 Context.Provider를 설정해 공급해 주어야 합니다.
안녕하세요!
data와 분리하여 전달했을 때 data 값이 변하면 결국 재생성이 일어나 하위컴포넌트들의 리랜더가 일어난다. 때문에 분리하여 작성한 dispatches의 Provider도 하위 컴포넌트이기 때문에 useMemo로 래핑해준다.
가 맞을까요? 맞다면 결론적으로 분리해주어야 하는 이유에대해서는 이해가 되는데 data와 함수들을 같이 전달되었을 때의 경우는 이해되지 않습니다.
같이 전달하던 따로 전달하던 결국 하위컴포넌트들의 리렌더가 일어나 useMemo를 사용하게 되는데
이 useMemo가 data와 전달하면 작동하지 않는 것인가요?
감사합니다