1. 중앙관리되는 스테이트 (프롭 드릴링 방지)
2. 순수함과 예측가능성
- 순수함수 사용을 강요
- 순수 오브젝트 사용을 강요
- 한쪽으로만 흐르는 간결한 플로우로 예측가능성
(스테이트 -> 액션 -> 리듀서 -> 스테이트)
요 두개임
근데 당신의 어플리케이션이 정말 스토어가 필요한건지, 캐싱이 필요한건지는 진지하게 고민해야함
사실 리덕스 창시자인 댄 아브라모브도 그걸 고민하다 요즘은 react-cache 개념을 만드는중.
그리고 에어비엔비가 리덕스에서 migration apollo-client로 마이그레이션 중이라는데, 이것도 사실
단순히 서버 스테이트 캐싱이 많은 어플리케이션에서
리덕스는 오버킬이 아닌가? 에 대한 고민에서 비롯된 것임.
어쨌든 당신의앱이 사실은 서버 상태 캐싱이 주 로직인 앱이라면
캐싱 라이브러리를 선택하는걸 권하고,
Apollo-client는 graphql에만 국한되어 있음으로
Http rest api까지 캐싱해주는
React-query 패키지 추천함.
리덕스는 한마디로 복잡한 스테이트를 가지는 어플리케이션에서나 쓰는걸 추천함.
근데 모던 웹들 죄다 상태 꽤많지않나, 관리자용콘솔만해도 페이지당 20개는 훌쩍넘어감ㅋㅋ
근데 특정페이지에서만 쓰는 상태면 뭔가 따로만들어도 될거같기도하고...굳이 전역적으로? 느낌이 들긴해
말하면서 생각해보니 라우팅별로 상태 따로 생성하면 안되나...내가 방금 생각난거니까 이미있을거같긴한데