컴포넌트 A는 리덕스 스토어를 구독하고 있다. 리덕스에 저장된 데이터가 변경되었을 때(A가 구독 중인 값이 변경되었다고 가정한다) 어떤 과정을 거쳐 컴포넌트 A가 변경된 값을 가져올 수 있는지 흐름을 그려보자
1) 저장된 데이터가 변경되기 위해선 먼저 View에서 액션이 일어나야 한다.
2) View에서 action을 dispatch 해서 middleware를 작동시킨다.
3) middleware에서 명령받은 일을 수행하고 난 뒤, reducer 함수를 실행한다.
4) reducer의 실행 결과를 store에 새로운 값으로 저장한다.
5) useSelector로 변경된 값을 가져올 수 있다.
React와 Middleware 관계
Middleware란?
// 디스패치될 될 때마다 액션의 정보와 액션이 디스패치 되기 전 후의 상태를 콘솔에 보여주는 LOGGING MIDDLEWARE
//ARROW FUNCTION
const loggerMiddleWare=store=>next->action=>{
//Middleware
}
Middleware가 할 수 있는 작업들
참조:
Redux MiddleWare -1 (개념+ Logger)
Redux Fundamentals, Part 6: Async Logic and Data Fetching