useContext()
hook'u yetersiz geliyorsa kullanmalisin.Biraz kullanim amacina gore. Global state kullanip dauseContext()
Hook'u yetersiz geliyorsa kullanmalisin.
Redux ile state degisimlerine async middleware inject edebiliyorsun, reducer kullandigi icin state replay yapabiliyorsun. Elbette canin isterse aynisini React context Hook'u ile de yaparsin ama ne geregi var?
Kısa cevap; hayır gerekli değil.
Ama global state management yapıyorsan paket kullanmakta fayda var. Context API ile de yaparsın ama tekerleği yeniden icat etmeye gerek yok.
3-4 yıl önce Redux kullanırdım hep. Ama genel sistemi yorduğunu düşünüyorum ki bundle size bile gereksiz büyük. Redux toolkit çıktı bu yüzden.
Redux selector yapısını iyi kurmazsan gereksiz renderlarla uğraşırsın.
Context API global olarak kullanma. Context değiştiği anda usecontext çağırdığın her yer render olacak. Sadece liste güncellediğinde tüm siten render olabilir. Performans sorunu yaşarsın. İyi optimize etmen gerekecek. Güzel yanı bundle size yok. Herhangi bir pakete bağımlılık yok. Çok değişmeyen global yapılarda kullanıyorum ben. Themeprovider, languageprovider gibi.
Diğer çözümler;
Zustand (en sık kullandığım): Çok çok basittir. Kolay kullanım bundle size yok denecek kadar az (1-2KB). Context API benzeri ama daha performanslı. Redux kadar hiç karışık değil. Hooks tabanlı. Öğrenim eğrisi yok.
Jotai: Atomik state diye geçiyor. Diğerlerinden farklı bir yapısı var. Usestate gibi kullanımı var. Kendi başına yapılarda güzel iş çıkartıyor. Tüm Logic iş akışı atarsın, sonra miss gibi kullanırsın.
Hepsini kullan. Kullandıkça öğreniyorsun. Terimler uzak olması normal. Kullandıkça öğrenirsin.Hocam terimlere biraz uzağım daha önce hiç ihtiyaç duymadım Redux toolkite. Ama şu stateleri her yerde çağırmak amelelik gibi geliyor, Redux toolkit mi öğrenmeliyim, context API mi yoksa zustand mi projelerimdeki stateleri yönetmek için tam anlamadım.
Hepsini kullan. Kullandıkça öğreniyorsun. Terimler uzak olması normal. Kullandıkça öğrenirsin.
Bu sitenin çalışmasını sağlamak için gerekli çerezleri ve deneyiminizi iyileştirmek için isteğe bağlı çerezleri kullanıyoruz.