리덕스가 지니고 있는 기능. Context API 또는 MobX를 사용하는 것과 차별화가 되는 기능이라고 한다.
액션이 디스패치 된 다음에 리듀서에서 액션을 받아와서 업데이트 하기 전에 딴길로 새서 추가적인 작업을 할 수 있게 된다.
그 추가적인 작업이란,
비동기 작업을 처리 할때 사용을 한다. 만약 리액트 앱에서 우리가 백엔드 API를 연동해야한다면, 리덕스 미들웨어를 사용하여 처리한다.
누구든지 미들웨어를 만들어서 사용할수 있지만, 일반적으로는 리덕스 미들웨어 라이브러리를 설치해서 사용한다. redux-thunk
, redux-saga
, redux-observable
, redux-promise-middleware
등이 있다.
redux-saga
와 redux-observable
의 경우에는 특정 액션을 모니터링 할수 있기 때문에 특정 액션이 디스패치 됐을 때 원하는 함수를 호출하거나, 라우터를 통해 다른 주소로 이동하는 것이 가능해진다