📅 September 01, 2021
•⏱️2 min read

redux-saga は React/Redux アプリケーションにおける副作用(データ通信などの非同期処理、ブラウザキャッシュへのアクセスのようなピュアではない処理)をより簡単で優れたものにするためのライブラリです。 https://github.com/redux-saga/redux-saga/blob/master/README_ja.md
ジェネレーター関数で作成されているMiddlewareの一種で、「タスク」という概念をRedux内に持ち込み、Reduxにおける非同期処理でありがちな「どこに書く?」や「どうやって書く?」に対してレールを引いてくれるもの。
ジェネレーター関数で使われる yield を用いて、以下のEffectを使える。
https://redux-saga.js.org/docs/api/#effect-creators
よく使うやつは以下。
takeEvery ・・・Actionを監視して、タスクを実行する。call ・・・タスクを同期的に実行する。fork ・・・タスクを非同期的に実行する。put ・・・Actionをディスパッチする。(Store更新など)select ・・・Storeの値を取得all ・・・複数のタスクを並列で実行し、全て終わるまで待つjoin ・・・forkしたタスクが完了するのを待つ。複数指定可能。