1. Thunk란?
리덕스의 액션에서 비동기 처리를 할 수 있게 해준다.
2. 사용법
리덕스 설치 및 thuck 설치
npm install @reduxjs/toolkit react-redux
npm install redux-thunk
store에 추가 해주기
import { applyMiddleware, legacy_createStore as createStore } from 'redux';
import { reducer } from '../Reducers';
import ReduxThunk from 'redux-thunk';
const store = createStore(reducer, applyMiddleware(ReduxThunk));
export default store;
thunk를 사용하면 액션에서 비동기 처리가 가능해진다.
import axios from 'axios';
// 기본적으로 액션은 객체 반환
export const Read = (data) => {
return {
type: 'READ',
payload: data,
};
};
// 비동기 처리 가능해짐
export const getData = () => {
return function (dispatch) {
axios
.get('https://jsonplaceholder.typicode.com/todos')
.then((res) => {
const data = res.data.slice(0, 5);
dispatch(Read(data));
})
.catch((error) => {
console.log(error);
});
};
};
디스패치 사용 시
useEffect(() => {
dispatch(getData());
}, []);
마치며..
리덕스 사용하다보니 조금은 리덕스의 진행절차가 암기되는 것 같다. 역시 반복만이 답인가보다.
참고
https://react.vlpt.us/redux-middleware/04-redux-thunk.html
4. redux-thunk · GitBook
4. redux-thunk 소개 redux-thunk는 리덕스에서 비동기 작업을 처리 할 때 가장 많이 사용하는 미들웨어입니다. 이 미들웨어를 사용하면 액션 객체가 아닌 함수를 디스패치 할 수 있습니다. redux-thunk는
react.vlpt.us
'React' 카테고리의 다른 글
to do 앱 만들기 후기 (0) | 2023.04.09 |
---|---|
리액트로 달력만들기 (0) | 2023.04.08 |
Proxy (0) | 2023.04.04 |
Custom Hook (0) | 2023.03.27 |