목록 보기
react + typescript에 redux-saga 셋팅하기
프론트엔드

react + typescript에 redux-saga 셋팅하기

너드팩토리
너드팩토리
2021년 1월 2일

두줄요약

React와 TypeScript 환경에서 Redux 모듈을 분리하고 typesafe-actions로 타입 안전성을 구성했습니다. Redux-Saga 미들웨어로 API 비동기 처리와 중복 요청 취소 흐름을 구현했습니다.

구조와 흐름

  • CRA TypeScript 프로젝트에 Redux, React-Redux, Redux-Saga, typesafe-actions 구성
  • Redux 모듈을 actions, types, reducer, saga, index 파일로 분리
  • rootReducer와 rootSaga 결합 후 Saga 미들웨어를 스토어에 등록

해결 방법

  • typesafe-actions의 createAction·createReducer로 액션과 상태 타입 연결
  • createAsyncAction으로 요청·성공·실패 비동기 액션 묶음 구성
  • Saga의 call·put·takeLatest로 API 호출, 결과 디스패치, 중복 요청 취소 처리

주의할 점

  • Saga 동작 이해를 위한 JavaScript 제너레이터 함수 선행 지식
  • takeEvery, takeLatest, takeLeading의 액션 수신·취소·차단 특성 구분
  • Redux-Saga 외 Redux-Observable·MobX·Observable 등 프로젝트 특성에 따른 선택 필요

적용해볼 점

  • useSelector에 RootState를 적용한 스토어 상태 타입 추론
  • useDispatch로 비동기 요청 액션 디스패치

다음 읽기

#React 주제를 다룬 다른 회사 글

리덕스 사가(Redux Saga)란 무엇인가?

Redux의 상태 관리 원칙과 미들웨어의 부수 효과 처리 방식을 설명했습니다. Redux Saga의 제너레이터·이펙트 기반 비동기 제어 API를 정리했습니다.

트렌비
트렌비
프론트엔드

댓글 0개

댓글을 작성하려면 로그인이 필요합니다.

댓글을 불러오는 중...