[React] 상태관리 라이브러리 어떤걸 써야할까?

부모 컴포넌트에서 자식 컴포넌트로만 state를 props로 전달할 수 있고, 반대로 부모 컴포넌트로 props를 직접 전달할 수는 없다.

자식 컴포넌트에서 부모 컴포넌트에 있는 state를 변경하려면 setState를 props로 넘겨줘야 한다.

이것이 반복되다 보면 Props Drilling이 발생하게 되고 프로젝트의 규모가 커질수록 props의 depth가 증가하게 된다.

이는 불필요한 리렌더링을 발생시킬 수 있다.

그럼 props로 모든 state를 관리하는 것은 추천하지 않는가?

컴포넌트의 재활용성, 의존성 분리 등의 측면에서의 props를 state로 관리하는 것은 좋다고 생각한다.

다만 프로젝트 전반적으로 사용되는 데이터를 전역으로 사용하고 그에 대한 부가적인 state를 props로 처리하면 더 효율적이라고 생각한다.

[Recoil] 전역 상태관리 라이브러리 - Recoil 정복기

Recoil은 우선 React 전용 라이브러리인 만큼 React 내부 접근성이 용이하다.

전역상태의 설정/정의가 매우 쉬우며, Recoil이 지원하는 Hooks로 이를 get/set 하기 때문에 React 문법과 매우 유사하다.전역상태를 사용하기 위한 Boiler Plate 양이 현저히 적으며(recoil 디렉토리만 필요), 사용하는 방법도 Hooks 기반으로 매우 심플하며 React스럽기 때문에 러닝커브가 낮다는 장점이 있다.