Redux’un veri akışı tek yönlüdür (unidirectional data flow).
Bir kullanıcı etkileşimi → Action → Dispatch → Reducer → Yeni State → UI güncellemesi şeklinde işler.
Event Handler (Olay İşleyici)
Kullanıcı bir butona tıklar veya bir inputa değer girer.
👉 Örn: “50$ yatır” butonuna basıldı.
Action Creator
Olay bir action objesi oluşturur:
{ type: "DEPOSIT", payload: 50 }
Dispatch
Action, dispatch
ile Store’a gönderilir.
Reducer
Store’daki ilgili reducer, mevcut state + action objesini alır → yeni state döndürür.
Store Güncelleme
Yeni state Store’a kaydedilir.
Re-render
Store’a abone olan component’ler state değişimini fark eder ve tekrar render olur.
Özellik | Context API + useReducer | Redux |
---|---|---|
Paket Bağımlılığı | React’in parçasıdır, ek paket yok. | redux , react-redux gerekir. |
Kurulum | Basit, tek context açmak kolay. | Daha fazla boilerplate. |
Performans | Fazla re-render olma riski. | İçinde optimizasyon mekanizmaları var. |
Asenkron İşlemler | Yerleşik destek yok. Ekstra kod gerekir. | Middleware (redux-thunk, redux-saga) ile güçlü async desteği. |
DevTools | Sadece React DevTools. | Çok güçlü Redux DevTools. |
🔹 Context API + useReducer
🔹 Redux