useReducer nedir, useState yerine ne zaman tercih edilir?
Cevap
useReducer, state'i (state, action) => yeniState biçiminde saf bir fonksiyonla yönetir. Redux'taki desenin bileşen içi hâlidir.
Tercih edilen durumlar:
- Birbirine bağlı birden çok state alanı (form, sihirbaz adımları)
- Bir sonraki state'in karmaşık kurallarla hesaplanması
- State geçişlerini tek yerde toplayıp test etmek
function sepetReducer(state, action) {
switch (action.type) {
case "ekle":
return { ...state, urunler: [...state.urunler, action.urun] };
case "sil":
return { ...state, urunler: state.urunler.filter(u => u.id !== action.id) };
case "temizle":
return { urunler: [] };
default:
throw new Error("Bilinmeyen işlem: " + action.type);
}
}
const [sepet, dispatch] = useReducer(sepetReducer, { urunler: [] });
dispatch({ type: "ekle", urun });İlgili React soruları
- Virtual DOM nedir ve reconciliation nasıl çalışır?
- Listelerde key prop neden önemlidir? Index kullanmak neden sorunludur?
- Controlled ve uncontrolled component farkı nedir?
- useEffect bağımlılık dizisi nasıl çalışır?
- useMemo ile useCallback arasındaki fark nedir?
- Gereksiz render'ları nasıl tespit eder ve önlersiniz?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.