❓Redux
- 순수 함수인 리듀서를 통해 상태 변경
- 러닝커브가 높음
- 상태 변경을 위한 코드가 많이 필요
- 풍부한 커뮤니티
❓Recoil
- 동시성 모드 지원
- 상태의 부분적인 업데이트 -> 컴포넌트의 재렌더링 최적화
- 비동기 처리를 추가적인 라이브러리 없이 리코일 안에서 가능
- 내부적으로 캐싱 지원 -> 동일한 atom 값에 대한 내부적으로 메모이제이션된 값을 반환 -> 속도가 빠름
- 배우기 쉬우며 내부접근성 용이, 리액트 문법과 유사
- 리덕스에 비해 쉽고 직관적임
- 작고 가벼운 프로젝트에 적합
- Atom으로 상태 단위, 업데이트와 구독 가능
- 아톰이 여러 군데에서 사용되면 사이드 이펙트 발생
- 아톰과 셀렉터가 많아지면 의존성이 여러 방향으로 엮이면서 예측 어려워짐
- 아직 실험 버전, 이슈가 많음 -> 리덕스에 비해 커뮤니티 부족
❓Zustand
- 상태를 변경하는 액션을 정의하는 것이 아니라, 직접 상태를 변경하는 함수를 정의
- Flux 원칙을 바탕으로 빠르게 확장 가능
- 발행/구독(pub/sub) 모델 기반
- 더 적은 코드. 러닝 커브가 낮음! 이슈가 제일 적음
- 탑다운 방식으로 전역 상태 접근(오버뷰에서 디테일 세부사항으로 스토어 모델링 하는게 좋음) -> but 성능 떨어짐
- 리코일과 비교하면 set 형태로 아톰을 바꿔주는 로직을 컴포넌트 안에서 해주거나 커스텀 훅으로 빼서 해주는데, 주스탠드는 스토어에서 바로 할 수 있음
- immer, persist 미들웨어 지원
- 일시적 업데이트(상태가 자주 바뀌더라도 매번 업데이트가 일어나지 않음) -> 리렌더링 제어
- 생긴지 얼마 안됨... 익스텐션, 플러그인, 스니펫 등이 많이 없음
'React' 카테고리의 다른 글
[React-Query]prefetchQuery (0) | 2025.02.25 |
---|---|
useEffect의 의존성 배열 (0) | 2024.03.10 |
useRef (0) | 2024.03.10 |
React Query (0) | 2024.03.03 |
리액트 개념 공부 (0) | 2024.02.09 |