React projelerinde state yönetimi, gereğinden fazla büyütüldüğünde kodu zorlaştırır. Her değişen değeri global store'a taşımak, componentleri birbirine görünmez bağlarla bağlar. Sade bir state mimarisi için önce verinin kime ait olduğunu, ne kadar süre yaşayacağını ve URL ile paylaşılması gerekip gerekmediğini sormak gerekir.
Local State'i Küçümsemeyin
Bir modal açık mı, input değeri ne, aktif tab hangisi? Bu tür bilgiler genellikle componentin kendi local state'inde kalmalıdır. Global state'e taşındığında hem test edilmesi hem de değişiklik etkisinin takip edilmesi zorlaşır.
URL State Paylaşılabilir Durumlar İçindir
Filtre, arama metni, sayfa numarası ve seçili kategori gibi değerler URL'de tutulabilir. Böylece kullanıcı linki kopyaladığında aynı görünümü paylaşabilir. Ancak her küçük UI durumunu URL'ye yazmak da gereksiz karmaşa üretir. Kural basit: kullanıcı bu durumu paylaşmak ister mi?
-
Arama ve filtre URL'ye uygundur
-
Modal animasyonu URL'ye uygun değildir
-
Form taslakları genellikle local kalmalıdır
Server State Ayrı Düşünülmeli
API'den gelen veri, local state değildir. Cache, yeniden doğrulama, loading ve error durumları ayrı ele alınmalıdır. React Query, SWR veya framework'ün server component yapısı bu noktada yardımcı olur. Server state'i elle global store içinde yönetmek çoğu zaman gereksiz tekrar yaratır.
State'i Azaltmanın En İyi Yolu Türetmektir
Bir değer başka verilerden hesaplanabiliyorsa ayrıca state olarak tutulmamalıdır. Örneğin toplam fiyat, seçili ürünler listesinden hesaplanabilir. Hem listeyi hem toplamı state olarak tutmak, güncelleme hatalarına davetiye çıkarır.
State'i Azaltmak Genellikle İyileştirmedir
React projelerinde state yönetimini sadeleştirmenin ilk adımı yeni bir kütüphane seçmek değil, gerçekten state olması gereken bilgiyi ayırmaktır. Bazı değerler URL'den, bazıları formdan, bazıları API cevabından, bazıları da mevcut state'ten türetilebilir. Türetilen bir bilgiyi ayrıca state olarak tutmak senkronizasyon hatalarına yol açar. Yeni başlayanların en çok zorlandığı nokta burasıdır: her değişen değer state değildir. Sade state yapısı componentleri daha okunur, testleri daha kolay ve hata takibini daha hızlı hale getirir.
-
Türetilen değerleri ayrı state yapmayın
-
Form state ile server state'i karıştırmayın
-
Component büyürse önce veri akışını çizin
Atölyede Nasıl Uygulanır?
React'ta State Yönetimini Sadeleştirmek başlığı, en iyi küçük bir uygulama dosyası veya mini proje üzerinden çalışıldığında anlaşılır. Katılımcı önce kendi mevcut bilgisini yazar, sonra React odağında kısa bir hedef belirler ve bu hedefi adım adım çalışan çıktıya dönüştürür. Eğitmen burada doğrudan cevabı vermek yerine, katılımcının kararlarını görünür hale getirir: hangi dosya değişti, hangi varsayım yapıldı, hangi hata görüldü ve çözüm neden işe yaradı? Bu akış özellikle yazılım ve vibe coding konularında önemlidir; çünkü yalnızca sonucu almak değil, sonucun nasıl üretildiğini okuyabilmek gerekir.
-
React için önce küçük bir deneme alanı hazırlayın
-
state yönetimi kararlarını not alarak ilerleyin
-
frontend sonucunu çalıştırıp kendiniz doğrulayın
Kendi Projenize Uyarlama
Bu yazıdaki yaklaşımı kendi projenize taşırken birebir kopyalamak yerine, projenizin ölçeğine göre sadeleştirmek daha doğru olur. Küçük bir portföy projesinde iki ekran ve bir form yeterliyken, ekip içinde kullanılan bir üründe yetki, hata yönetimi ve bakım süreci ayrıca düşünülmelidir. Bu nedenle her öneriyi önce mevcut kod tabanınızın alışkanlıklarıyla karşılaştırın. Eğer öneri projedeki bileşen yapısını bozuyor, gereksiz bağımlılık ekliyor veya test edilmesi zor bir akış oluşturuyorsa daha küçük bir adımla başlamanız daha sağlıklıdır.
-
Öneriyi önce tek sayfa veya tek component üzerinde deneyin
-
Çalışan sonucu not alın ve eski davranışla karşılaştırın
-
Kalıcı hale getirmeden önce mobil görünümü kontrol edin
Sonuç
React'ta iyi state yönetimi, daha fazla araç kullanmak değil daha doğru sınıflandırma yapmaktır. Local, URL ve server state ayrımı netleştiğinde componentler daha okunabilir, hatalar daha izlenebilir hale gelir.
