メインコンテンツへスキップ

Redux-Sagaについて

redux-sagaは、アプリケーションの副作用(データ取得などの非同期処理や、ブラウザキャッシュへのアクセスなどの不純な処理)の管理をより容易にし、実行をより効率的にし、テストを容易にし、失敗への対処をより適切に行えるようにすることを目的としたライブラリです。

副作用に対してのみ責任を負う別スレッドがアプリケーションにあるという考え方です。redux-sagaはReduxミドルウェアで、つまりこのスレッドは標準のReduxアクションを使用してアプリケーションから開始、一時停止、キャンセルでき、完全なReduxアプリケーションの状態にアクセスし、Reduxアクションもディスパッチできます。

非同期フローを簡単に読んだり、書いたり、テストできるようにするために、ジェネレーターと呼ばれるES6機能を使用します。(馴染みがない場合、入門リンクはこちら) そうすることで、これらの非同期フローは通常の同期JavaScriptコードのように見えます。(async/awaitに似ていますが、ジェネレーターには必要な優れた機能が他にもいくつかあります)

データ取得の処理にはredux-thunkを使用していたかもしれませんが、これとは異なり、コールバック地獄に陥ることはありませんし、非同期フローを簡単にテストでき、アクションを純粋なままにしておくことができます。