질문주신 내용과 댓글을 확인해 보니 부모의 상태와 연관있는 함수 가령 setState 같은 함수를 프롭스로 전달하고 있는것으로 보여집니다 : ) 이러한 함수를 전달해야하는 깊이가 2뎁스 이상이 될때에는 전역함수로 관리를 하는 편입니다. 보통 위와 같은 경우에 페이지 단위로 전역 스토어를 생성해 관리하거나 특정 컨테이너를 위한 컨텍스트를 생성해 데이터를 관리하는 방법이 있습니다. (제일 좋은건 해당상황을 만들지 않는것이에요, 대부분 위와같은 상황을 자세히 살펴보면 로직적인 수정으로 해결이 가능할때가 많습니다.) 전역 상태 관리를 할때는 전역상태관리 라이브러리 사용을 추천드리는데요, 일부 zustand나 jotai와 같은 전역상태 라이브러리들은 기본적으로 상태 갱신에 따른 re-rendering 문제를 줄여주기 때문입니다. [https://jotai.org/docs/advanced-recipes/large-objects] "대용량 오브젝트나 array 형태의 state에 대해 변경사항이 생겼을 때, 일반적으로 해당 state를 사용하는 모든 컴퍼넌트에 대해서 리렌더링이 발생하는데 그런 문제점을 optics라는 외부 라이브러리를 integration 해서 해결했다." 저는 요즘에는 zustand주로 와 react-query를 사용하고 있습니다 : ) Zustand는 리액트에 의존적이지 않아 데이터가 앱 외부에 저장이 이루어져 여러모로 편리한 도구입니다. 기본적으로 사용을 위한 코드가 짧기 때문에 애용중이에요 ㅎㅎ (하나의 스토어를 사용하기위해 리덕스는 최소2개 이상의 파일을 생성 및 관리해야해요 ㅠㅠ) 만약, 상태변경 함수를 전달하는게 아니라면 부모에서 사내려주는 함수에서 외부에서 주입되는 지역상태값등의 의존성 값들을 프롭스로 받는등 적절히 수정하셔서 별도의 유틸함수로 분리하시면 될것 같습니다. 이후에 분리된 함수를 자식 컴포넌트에서 활용하시면 될것 같아요 : )

다음 내용이 궁금하다면?

또는

이미 회원이신가요?

2023년 2월 8일 오전 7:05

 • 

저장 3조회 211

댓글 0