티스토리 뷰
반응형
요즘 실무에서 Recoil 입문자 코스를 밟고있다. 아무것도 모르던 때에는 Recoil이 다른 State Management Library들과 기본 구조가 같고 제공하는 기능 자체는 동일하다고 생각했었는데, 제대로 알아보기 위해 정리해본다.

Context API 특징
- 전역 상태 관리: 컴포넌트 트리 전체에서 데이터를 전달하는 데 사용된다. 중첩된 컴포넌트 간에 데이터를 쉽게 공유할 수 있습니다.
- Provider-Consumer 모델: Provider와 Consumer 컴포넌트를 제공하여 데이터를 제공하고 소비하는 패턴을 쉽게 구현할 수 있다.
Context API의 장/단점
- 간편한 데이터 공유: 중첩된 컴포넌트 간에 데이터를 전달할 때 prop을 계속해서 넘겨주지 않아도 된다.(주요 기능)
- 렌더링 성능 저하: 컨텍스트의 값이 변경될 때 해당 컨텍스트를 사용하는 모든 하위 컴포넌트가 리렌더링될 수 있다.
- Context의 복잡성: 어플리케이션 규모가 커질수록 컨텍스트의 관리가 복잡해질 수 있다.
Context API와 Recoil의 차이
- 상태의 관리 방식: Context API는 주로 컴포넌트 트리에서 데이터를 상향식으로 전달하는 데에 중점이고 반면 Recoil은 전역 상태를 원자성(atom) 단위로 선언하고 관리하는 방식으로, 컴포넌트 간에 데이터를 자유롭게 공유할 수 있다.
- 리렌더링 최적화: Recoil은 상태의 의존성을 추적하고, 의존하는 부분만 리렌더링하는 등의 최적화를 수행한다.
- 비동기 상태 관리:Recoil은 비동기적인 상태를 다루기에 효과적이며, selector를 사용하여 파생된 상태를 간단하게 정의할 수 있다.
- DevTools 지원:Recoil은 개발 도구를 통해 전역 상태를 시각화하고 디버깅할 수 있는 DevTools를 제공한다.
- 관리의 용이성: Recoil은 중앙 집중화된 관리와 상태의 원자성을 통해 복잡한 상태를 관리할 때 효과적이다.
넓은 범위에서 Recoil이 제공하는 기능이 좀 더 유용하지만 Context API는 간단히 Child에서 Parent로 State를 전달하는 기능에 중점을 두고 있어 작은 서비스에서 사용할 때 더 간단하고 가볍게 구현할 수 있을 것 같다.
반응형
'React와 NextJS' 카테고리의 다른 글
React에서 Dialog 태그로 모달 만들기 (0) | 2024.11.07 |
---|---|
React-Transition-Group vs. React-Spring (0) | 2024.11.04 |
React에서의 Dialog (0) | 2024.10.31 |
getInitialProps란? | getInitialProps 사용이 권장되지 않는 이유 (0) | 2024.10.30 |
iOS에서 input의 focus zoom 막는 방법 (1) | 2024.10.28 |
- Total
- Today
- Yesterday
반응형