ミドルウェア はアクションのdispatchとアクションがreducerに到達する間に位置し、アクションをインターセプトして side effect (非同期APIコール、ログ) を処理できます — reducerはそれらが純粋である必要があるためこれができません。Thunk は最も一般的なミドルウェアで、非同期ロジックを可能にします。
ミドルウェアが適用される場所
dispatch(action) → [ middleware 1 → middleware 2 → ... ] → reducer → store
(can inspect, modify, delay, or stop actions; do side effects)
ミドルウェアは をラップするため、すべてのアクションはreducerに到達する前にそれを通過します。これはreducerが禁止するside effectの指定された場所です。
