Middleware dispatch کیے جانے والی action اور reducer تک پہنچنے والی action کے درمیان بیٹھی ہے، جو آپ کو actions کو intercept کرنے دیتی ہے تاکہ side effects (async API calls، logging) کو سنبھالا جا سکے — جو reducers نہیں کر سکتے کیونکہ انہیں pure رہنا چاہیے۔ Thunks سب سے عام middleware ہیں، جو async logic کو enable کرتے ہیں۔
Middleware کہاں فٹ ہوتا ہے
dispatch(action) → [ middleware 1 → middleware 2 → ... ] → reducer → store
(can inspect, modify, delay, or stop actions; do side effects)
