매일매일
Published 2023. 4. 11. 23:47
Redux Thunk 미들웨어 사용해보기 React

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