Middleware
는Reducer
에서Acrion
을Dispatch
하기전 사전에 지정된 작업을 실행
Middleware
는, Action
이 Dispatch
되어서 Reducer
에서 이를 처리하기전에 사전에 지정된 작업들을 설정한다.
즉 Middleware
는 Action
과 Reducer
사이의 중간자이다.
Devtools
는Action
의History
를 확인
Redux Devtools
는 크롬 확장프로그램으로 Redux Action
의 History
를 확인할 수 있다.
History
내역을 기록하기 위해서는 Redux
에 Middleware
를 추가해야하는데 사용방법은 다음과 같다.
npm i redux-devtools-extension
configureStore.js
파일에서 Middleware
와 Devtools
를 연결// store/configureStore.js
import { applyMiddleware, createStore, compose } from 'redux';
import { createWrapper } from 'next-redux-wrapper';
import { composeWithDevTools } from 'redux-devtools-extension';
import reducer from '../reducers/index';
const configureStore = () => {
const middlewares = [];
const enhancer = process.env.NODE_ENV === 'production'
? compose(applyMiddleware(...middlewares))
: composeWithDevTools(applyMiddleware(...middlewares))
const store = createStore(reducer, enhancer);
return store;
};
const wrapper = createWrapper(configureStore, {
debug: process.env.NODE_ENV === 'development'
});
export default wrapper;
Devtools
를 사용하면서 History
내역이 쌓이게되면 메모리를 많이 차지하고 중앙 데이터의 내역이 전부 표시되기 때문에 보안에 취약하다.
그래서 배포용일때는 Devtools
를 연결하지 않고, 개발용일때만 Devtools
를 연결하는 것을 권장한다.
composeWithDevTools(applyMiddleware([...middlewares])) // 개발용
compose(applyMiddleware([...middlewares])) // 배포용