개인의견 : 사용 형태가 리덕스와 크게 다르지 않은데, 굳이 리팩토링까지 해가면서 이렇게 쓸 이유가 있나 싶긴함.Recoil
정도로 상태관리 라이브러리를 갈아타는 큰 변화정도는 돼야 생각해볼만 할듯.
- 중앙집중식이 아니라는 것 외에는 리듀서 만들어서 쓰는 것은 리덕스와 동일함. (useState를 써도 되지만, 상태가 조금만 복잡해져도 자연스래 useReducer를 쓰게 됨.)
- useContext 공식문서 : https://ko.reactjs.org/docs/hooks-reference.html#usecontext
- useReducer 공식문서 : https://ko.reactjs.org/docs/hooks-reference.html#usereducer
리덕스 쓰지 말라고?
global state가 꼭 필요한 상황 외에도 그냥 무조건 redux를 쓰는 사람들을 위한 말.
constate 라이브러리
context API의 단점
- 해당 context에 속해있는 값중 하나라도 바뀌면, 해당 context를 구독하고 있는 모든 컴포넌트가 리렌더링된다. ( 방금 바뀐 상태값을 쓰지 않았더라도..! )
- 따라서 context를 최대한 잘게 쪼개서 사용할 필요가 있고, 상태를 사용하는 부분과 상태를 변경하는 부분도 나눠서 사용해야한다.
- 이를 편하게 해주기 위한 라이브러리가 바로 constate임.