redux-saga
ES6のジェネレータで副作用(非同期のAPI呼び出し、画面遷移など)を扱うReduxミドルウェア。作者はYassine Elouafi、2015年。強力だが複雑。
サガはアクションを「待つ」ジェネレータ関数で、非同期処理の流れを記述する。yield call(api.fetchUser, id)は、実際にAPIを呼ばなくてもテストできる。競合はredux-thunk(単純だが機能は控えめ)とredux-observable(RxJSベース)。2020年にRedux ToolkitとRTK Queryが非同期処理を標準で備えると、勢いを失った。現在は大半がレガシー扱いで、最新のReact構成ではReduxとミドルウェアの組み合わせをやめてTanStack Queryまで一気に移る例も多い。