Middleware นั่งอยู่ระหว่างการ dispatch action และ action ถึง reducer ทำให้คุณสามารถ intercept actions เพื่อจัดการ side effects (async API calls, logging) — สิ่งที่ reducers ไม่สามารถทำได้เพราะต้องคงความบริสุทธิ์ Thunks เป็น middleware ที่พบเห็นได้บ่อยที่สุด ช่วยให้ logic แบบ async
Middleware อยู่ที่ไหน
dispatch(action) → [ middleware 1 → middleware 2 → ... ] → reducer → store
(can inspect, modify, delay, or stop actions; do side effects)
Middleware ห่อหุ้ม ดังนั้นทุก action ผ่านมันก่อนที่จะถึง reducers นี่คือสถานที่ที่กำหนดไว้สำหรับ side effects ที่ reducers ห้าม
