📚 Reference
📜 Chapter
Troubleshooting
Todo List
recoil-persist
Pinia
Vuex
Context
Zustand
Redux
Mobx
Jotai
기존의 상태 관리 라이브러리 (Redux, Mobx…)
- 기존의 상태 관리 라이브러리들은 어떠한 문제도 없다.
- 하지만 중요한 점은 상태 관리 라이브러리들이 React 라이브러리가 아니라는 점이다.
- store는 "외부요인으로" 취급되는 것이기 때문에 React의 내부 스케줄러에 접근할 수 없다.
- 지금까지는 이것이 중요하지 않을 수도 있었다.
- 그러나 동시성 모드가 등장하며 이야기가 달라졌다.
- 아마도 페이스북 소프트웨어 개발자들은 동시성 모드를 사용하고 있을 것이고, 그들이 React와 동시성 모드를 손쉽게 사용할 수 있는 해결 방안이 필요하였을 것이다. (Recoil은 내부적으로 React의 상태를 사용하고 있으며, 동시성 모드에 대한 지원도 곧 추가될 것이다.)
- 또한 일부 라이브러리(Redux..)는 강력한 기능을 제공하지만, 기본적인 store 구성을 위해 많은 보일러 플레이트와 장황한 코드를 작성해야 한다.
- 또한 비동기 데이터 처리 또는 계산된 값 캐시와 같은 중요한 기능은 라이브러리의 기능이 아니며, 이를 해결하기 위해 또 다른 라이브러리를 사용해야 한다.
- 그리고 만약 selector가 동적인 prop을 받는 경우 이 값을 정확하게 memoization하는 것은 어려운 일이다.
Recoil