reduxThunk
redux-thunk
Reference
리덕스(Redux)를 왜 쓸까? 그리고 리덕스를 편하게 사용하기 위한 발악 (i)
redux-thunk란
기존에 redux를 사용할 때 api를 요청하게 되면 redux-thunk를 사용했는데 redux-thunk의 정확한 개념은 무엇인지 알고 있지 않았다. 그래서 이번에 정리를 하게 되었다.
redux-thunk는 한 줄로 정리하면 redux를 사용할 때 비동기 dispatch를 하기 위한 비동기 미들웨어이다.
코드로 예시를 들어보자.
export default connect(mapStateToProps, mapDispatchToProps)(Container); 보통 이렇게 컨테이너 마지막에 connect(mapStateToProps, mapDispatchToProps)이렇게 해주고 redux를 사용하게 된다. mapStateToProps 같은 경우는 일반 redux와 같이 store에서 가져와서 사용하면 된다. 그런데 mapDispatchToProps에서 redux-thunk를 사용해 비동기 dispatch를 할 경우에는 일반 redux와 다른 부분이 있다.
function mapDispatchToProps(dispatch) {
return {
noThunk: (data) => dispatch({type:"example", data}),
};
} 위는 redux-thunk를 사용하지 않은 일반 redux이다.
위는 redux-thunk를 사용한 예시 redux 구조이다.
redux-thunk에서 function이 function을 리턴하는 것을 thunk라고 부른다. 위에서는 asyncFunction이 되겠다. 위와 같이 코드를 짜면 비동기적으로 redux의 store에 state들을 저장할 수 있게 된다.
react-thunk 공식 문서에 설명이 깔끔하게 잘 되어 있다. 복습이 필요하면 다시 가보자. 링크 : https://www.npmjs.com/package/redux-thunk
유념해야 할 코드
위에서도 설명했지만 예시가 다양할수록 좋으니 공식문서에서 유의깊게 봐야 할 코드를 남겨두고 정리를 마치도록 하겠다.
Last updated