redux-saga

Jungyub Song·2020년 7월 9일
0

redux-saga란?

redux-saga는 "Task"라는 개념을 Redux로 가져오기 위한 지원 라이브러리이다.
여기서 Task란 일의 절차와 같은 독립적인 실행 단위로써, 각각 평행적으로 작동한다.
또한 비동기처리를 동기적으로 표현하는 방법을 제공하고 있다.

  • select: State로부터 필요한 데이터를 꺼낸다.
  • put: Action을 dispatch한다.
  • take: Action을 기다린다. 이벤트의 발생을 기다린다.
  • call: Promise의 완료를 기다린다.
  • fork: 다른 Task를 시작한다.
  • join: 다른 Task의 종료를 기다린다.
    ...

redux-saga의 장점

  • Mock 코드를 사용하지 않아도 된다.
  • 작은 코드로 더 분할할 수 있다.
  • 재사용이 가능해진다.

재사용 가능한 containter componenet를 개발하는 데에 있어서 필수적인 요소이다.
saga는 원칙적으로 서로 독립적으로 동작하기 때문에 자신의 세계에서만 코드를 사용하는 것이 가능하며, 다른 saga에 영향을 끼치지 않는다.

데이터를 읽어들이는 것은 간단하지만, redux로 제대로 생각해야 할 점이 많다.

  • 어디서 통신처리를 적을 것인가
  • 어디로부터 통신처리를 불러올 것인가
  • 통신처리의 상태를 어떻게 가지게 할 것인가

통신처리가 완료되기까지 "읽어들이는 중..."이라는 메시지를 표시하기 위해 통신상태를 Store로 가지게 한 다음, 통신의 개시/성공/실패의 타이밍에 Action을 dispatch하여 상태를 바꿔줄 필요가 있다.
통신상태 뿐만 아니라, 통신이 정상적으로 종료되었는지, 에러로 인해 종료되었는지를 맞춰두면 에러메시지를 표시하는데 편리하게 사용할 수 있다.

0개의 댓글