컴포넌트들의 상태 관련 로직들을 다른 파일들로 분리시켜서 더욱 효율적으로 관리 할수 있으며 글로벌 상태 관리도 손쉽게 할 수 있다. Redux는 ContextAPI가 지금의 형태로 사용방식이 개선 되기도 전에 만들어진 라이브러리이다.
미들웨어를 사용하면 다음과 같은 작업을 수행할 수 있다.
connect
함수를 사용하면 리덕스의 상태 또는 액션 생성 함수를 컴포넌트의 props로 받아올 수 있으며, useSelector
, useDistpatch
, useStore
과 같은 Hooks를 사용하면 손쉽게 상태를 조회하거나 액션을 디스패치 할 수도 있다. connect
함수와 useSelector
함수는 내부적으로 최적화가 잘 이루어져있어서 실제 상태가 바뀔 때만 컴포넌트가 리렌더링된다.
모든 글로벌 상태를 하나의 커다란 상태 객체에 넣어서 사용하기 때문에 매번 context를 새로 만드는 수고로움을 덜수 있다.
※ 리덕스, 언제 쓸까?
프로젝트 규모가 크고, 비동기 작업을 자주하며, 결정적으로 리덕스 사용하기가 편하면.