Türetilmiş Atomlar ve Eş Zamanlı Olmayan Atomlar
Diğer atomlardan türetilmiş atomlar oluşturup Suspense ile tümleşen eş zamanlı olmayan atomlar yaratın
Türetilmiş Atomlar ve Eş Zamanlı Olmayan Atomlar, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, React Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. React Academy kursu toplamda 4 dersten oluşur.
Salt Okunur Türetilmiş Atomlar
Bir alıcı işlevi aktararak türetilmiş bir atom oluşturun: const doubleAtom = atom(get => get(countAtom) * 2). Bu atomda saklanan bir değer yoktur; countAtom her değiştiğinde yeniden hesaplanır.
Türetilmiş atomlar, elle eşzamanlama gerektirmeden her zaman güncel kalır. Bunlar, Jotai'deki hesaplanan özelliklerin karşılığıdır.
Otomatik Bağımlılık Takibi
Jotai, alıcı işlevinin içinde hangi atomlara erişildiğini takip eder ve bunlardan herhangi biri değiştiğinde türetilmiş atomu otomatik olarak yeniden değerlendirir. Bağımlılıkları açıkça bildirmeniz gerekmez.
Alıcı işlev get(atomA) ve get(atomB) çağrılarını yapıyorsa türetilmiş atom, atomA veya atomB'den biri değiştiğinde güncellenir.
Yazılabilir Türetilmiş Atomlar
Yazılabilir bir türetilmiş atomda hem alıcı hem de setter bulunur: atom(get => get(baseAtom).toUpperCase(), (get, set, newValue) => set(baseAtom, newValue.toLowerCase())). Okuma işlemi dönüştürülmüş değeri verir; yazma işlemi ise değeri dönüştürüp geri kaydeder.
Bu örüntü, temel atomu doğrudan açığa çıkarmadan iki yönlü veri dönüşümü gerçekleştirir.
Promise'lerle Eş Zamanlı Olmayan Atomlar
Alıcı işlevi eş zamanlı olmayan bir işlev olabilir: const userAtom = atom(async get => { const id = get(userIdAtom); return await fetchUser(id); }). Jotai, atom alıcılarından döndürülen Promise'leri yerel olarak kabul eder.
userIdAtom değiştiğinde Jotai, eş zamanlı olmayan alıcıyı otomatik olarak yeniden çalıştırır ve veriler alınırken tüketici bileşeni askıya alınır.
Eş Zamanlı Olmayan Atomlar ve React Suspense
Eş zamanlı olmayan atomlar React Suspense ile sorunsuz biçimde bütünleşir. Tüketici bileşenini bir geri dönüş içeren Suspense sınırıyla sarın. Promise beklemedeyken bileşen askıya alınır, Promise çözüldüğünde oluşturulur.
Bu, bileşendeki yükleme durumu yönetimini elle yapma gereğini ortadan kaldırır: isLoading bayrağına veya veri almak için useEffect kullanımına gerek kalmaz.
loadable: Suspense Kullanımından Vazgeçme
loadable'ı jotai/utils içinden içe aktarın. Eş zamanlı olmayan bir atomu sarın: const loadableUserAtom = loadable(userAtom). loadableUserAtom'ı okuyan bileşenler, askıya alınmadan {state: 'loading'}, {state: 'hasData', data: user} veya {state: 'hasError', error} alır.
Suspense sınırına güvenmek yerine satır içinde özel bir yükleme durumu oluşturmanız gerektiğinde loadable kullanın.
Atomları Sıfırlama
jotai/utils içindeki atomWithReset yardımcı programı, RESET simgesi kullanılarak başlangıç değerine sıfırlanabilen bir atom oluşturur. Bu yaklaşım, başlangıç değerini elle takip edip yeniden uygulamaktan daha temizdir.
Formlarda, tek bir işleyicide her setter'ı RESET ile çağırarak gönderme veya iptal sırasında tüm alan atomlarını sıfırlayın.
Atomları Zincirleme
Türetilmiş bir atom, başka birden çok atomu okuyabilir: const summaryAtom = atom(get => ({ user: get(userAtom), settings: get(settingsAtom), count: get(countAtom) })). Bu, herhangi bir bağımlılık değiştiğinde güncellenen tek ve kararlı bir başvuru oluşturur.
Yalnızca özete ihtiyaç duyan bileşenler, üç ayrı atomun tümüne abone olmak yerine summaryAtom'a abone olur.
Koşullu Atomlar
Türetilmiş atomlar koşula bağlı olarak farklı atomları okuyabilir: const activeDataAtom = atom(get => get(modeAtom) === 'A' ? get(dataAAtom) : get(dataBAtom)). modeAtom değiştiğinde türetilmiş atom veri kaynağını otomatik olarak değiştirir.
Jotai, her değerlendirmede doğru atoma yeniden abone olur ve etkin olmayan daldan kalan eski verilerin kullanılmamasını sağlar.
Eş Zamanlı Olmayan Atomlarda Hata İşleme
Eş zamanlı olmayan bir atomun alıcısı hata fırlatır veya reddedilirse, Suspense ile kullanıldığında hata en yakın React hata sınırına aktarılır. loadable ile hata, satır içinde işlenebilmesi için state.error alanında görünür.
Üretim kodunda eş zamanlı olmayan atomları her zaman bir ErrorBoundary veya loadable sarmalayıcıyla birlikte kullanın.
Türetilmiş Atom Performansı
Türetilmiş atomlar son sonuçlarını önbelleğe alır. Tüm bağımlı atomlar önceki değerlendirmedeki değerlerin aynısını döndürürse türetilmiş atom aynı başvuruyu döndürür ve alt akışta yeniden oluşturma gerçekleşmez.
Pahalı türetmelerde (büyük dizi dönüşümleri gibi) bu önbelleğe alma, ek yapılandırma gerektirmeden önemli performans kazanımları sağlar.
Eş Zamanlı Olmayan Atom ve Suspense Bütünleşmesi
Promise beklemedeyken eş zamanlı olmayan bir atomu okuyan bileşene ne olur?
Ders Özeti
Türetilmiş atomlar, otomatik bağımlılık takibiyle alıcı işlevlerini kullanarak diğer atomlardan değer hesaplar. Eş zamanlı olmayan atomlar eş zamanlı olmayan alıcılar kullanır ve varsayılan olarak React Suspense ile bütünleşir; bundan vazgeçip yükleme ve hata durumlarını satır içinde işlemek için jotai/utils içindeki loadable'ı kullanın.
Yazılabilir türetilmiş atomlar iki yönlü dönüşümler sağlar ve koşullu atomlar, diğer atom değerlerine göre veri kaynaklarını dinamik olarak değiştirir.
Sıkça Sorulan Sorular
“Türetilmiş Atomlar ve Eş Zamanlı Olmayan Atomlar” dersi ücretsiz mi?
Evet — “Türetilmiş Atomlar ve Eş Zamanlı Olmayan Atomlar” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve React Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. React Academy kursu toplamda 4 dersten oluşur.
“Türetilmiş Atomlar ve Eş Zamanlı Olmayan Atomlar” dersinde ne öğreneceğim?
Diğer atomlardan türetilmiş atomlar oluşturup Suspense ile tümleşen eş zamanlı olmayan atomlar yaratın React Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
React Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te React Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Türetilmiş Atomlar ve Eş Zamanlı Olmayan Atomlar” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu React Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her React Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- Atomlar: Jotai'de Durum Birimi
- useAtom ile Atomları Okuma ve Yazma
- Türetilmiş Atomlar ve Eş Zamanlı Olmayan Atomlar
- Jotai ve Zustand ile Context: Hangisi Ne Zaman Kullanılır