New Academy logosu
Yazılım Geliştirme

React'ta State Yönetimini Sadeleştirmek

Her probleme global state eklemeden, local state, URL state ve server state ayrımını doğru yapmak için pratik bir rehber.

👩🏻‍💻12 dk okuma
Yazılım Geliştirme

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.

#React#state yönetimi#frontend#URL state
👩🏻‍💻

Yazar

Fatma Nisa ATEŞ

Vibe Coding ve Yazılım Eğitmeni

Yapay zekâ destekli yazılım geliştirme, vibe coding ve proje tabanlı öğrenme alanlarında uygulamalı eğitimler verir.

Yapay zekâyı birlikte uygulamaya hazır mısınız?

Beş kişilik sınıflarda, iki gün ve 16 saat süren yüz yüze eğitimlerimizle yeni nesil yetkinlikler kazanın. Yaklaşan tarihleri inceleyin veya kurumsal teklif alın.