context? 전역상태 관리도구, 다른 라이브러리의 의존도가 생기지 않음.
전역상태 관리해야하는 이유?
1. 프롭스 드릴링(현재 해당 컴포넌트에는 필요하지 않음에도, 자식 컴포넌트에게 props를 전달하기 위하여) 해결
2. 부모가 알지 몰라도 되는 상태를 알고 있는가?
useReducer와 useContext기반으로 만들어진 전역 상태 관리 라이브러리
다양한 미들웨어 지원, 코드 간결화를 통한 편의성 증대, 비동기 통신의 전역상태관리를 위한 미들웨어 지원.
미들웨어 : 중간통로,효율적으로 데이터를 주고 받을때, 중간에서 데이터를 조작하여 사용할 수 있도록 용이하게 변환 및 중개
대표적인 미들웨어는
dev-tools,logger
thunk,saga(비동기 통신을 위한 것들(코드가 너무 긺)
리덕스의 단점
보일러 코드(사용하기 위해 사용하는 템플릿 코드) 가 너무길다.=> 유지 보수가 힘들어진다.
단점을 보완하기 위하여 rtk라고하는 최신버전을 출시하였지만, 냉담
너무 좋은 대체제
movx recoil(react팀에서 만든 react전용 전역 상태 관리 라이브러리)
jotai(함수를 넘길 수 없음)
zustand
설치
npm install redux
npm install react-redux