0Pricing
React Academy · Ders

useSyncExternalStore ile Özel Mağaza Oluşturma

Sıfırdan hafif bir harici mağaza uygulayın ve useSyncExternalStore ile React'e bağlayın.

useSyncExternalStore ile Özel Mağaza Oluşturma, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 4. 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.

Asgari Durum Deposu Gereksinimleri

Özel bir durum deposunun üç şeye ihtiyacı vardır: bir miktar durum, dinleyicileri kaydetmek için bir abone olma yöntemi ve geçerli durumu okumak için bir getSnapshot yöntemi. useSyncExternalStore'un beklediği sözleşmenin tamamı budur.

Durum deposunu bu kadar küçük tutmak onu çerçeveden bağımsız hâle getirir; böylece aynı durum deposu React'in içinde veya dışında kullanılabilir.

Bir createStore Fabrikası

Bir createStore fabrikası başlangıç değeri alır ve getSnapshot, abone olma ve güncelleme yöntemi içeren bir nesne döndürür. İçeride geçerli durumu ve bir dizi dinleyici geri çağırmasını tutar.

Bu fabrika deseni, tek bir yeniden kullanılabilir işlevle birden çok bağımsız durum deposu oluşturmanızı sağlar.

Güncelleme İşlevi Abonelere Bildirim Gönderir

Güncelleme işlevi durumu değiştirdiğinde yeni değeri atar ve ardından kaydedilmiş her dinleyiciyi çağırır. Bu dinleyiciler, React'in abone olma işlevi aracılığıyla sağladığı geri çağırmalardır.

Onları çağırmak, React'e durum deposunun değiştiğini bildirir; React de getSnapshot'u yeniden okuyarak durum deposundan okuyan bileşenleri yeniden oluşturur.

Kanca Aracılığıyla React'e Bağlanma

Bir bileşen, durum deposunun abone olma ve getSnapshot yöntemleriyle useSyncExternalStore'u çağırarak durum deposundan okur. Kanca geçerli değeri döndürür ve değer değiştiğinde bileşeni yeniden oluşturur.

Bunu useStore gibi özel bir kancaya sarmalayarak bileşenlerin her seferinde kanca parametrelerini kendilerinin bağlaması yerine tek bir işlev çağırmasını sağlayabilirsiniz.

Sağlayıcı Olmadan Bileşenler Arasında Paylaşım

Durum deposu modül düzeyinde bir nesne olduğundan, onu içe aktaran her bileşen aynı durumu paylaşır; herhangi bir bağlam sağlayıcısı gerekmez. Sarılacak bir ağaç ve özellikleri ağaç boyunca aktarma ihtiyacı yoktur.

Harici durum depolarının önemli bir çekiciliği budur: sağlayıcı hiyerarşisi yerine düz bir içe aktarma ve kullanma modeliyle paylaşılan genel durum sunarlar.

Parçalar için Birden Çok Durum Deposu

Tek ve yekpare bir durum deposu yerine her biri durumun bir parçasının sahibi olan birkaç küçük durum deposu oluşturabilirsiniz. Bileşenler yalnızca ilgilendikleri parçalara abone olur.

Bu, sorumlulukları birbirinden ayırır ve yeniden oluşturmaları sınırlar; çünkü bir parçanın değişmesi, başka bir parçadan okuyan bileşenleri hiçbir zaman etkilemez.

Zustand Bunu İçeride Kullanır

Popüler bir minimal durum kütüphanesi olan Zustand, tam olarak bu desen üzerine kuruludur ve 4. sürümden beri içeride useSyncExternalStore kullanır. Küçük API'si, özünde seçici katmanına sahip, özenle geliştirilmiş bir createStore'dur.

Bu bağlantıyı görmek, bu tür kütüphanelerin gizemini ortadan kaldırır: Bunlar, kendiniz oluşturabileceğiniz aynı temel yapının ince ve kullanımı kolay sarmalayıcılarıdır.

Yalnızca Değişen Durum Dilimlerinde Yeniden Oluşturma

getSnapshot işlevine, bir bileşenin kullandığı durumun yalnızca ilgili bölümünü döndüren bir seçici geçirerek bileşenin yalnızca bu bölüm değiştiğinde yeniden oluşturulmasını sağlarsınız.

Bu, seçici sonucunun kararlı olmasını gerektirir. Böylece ilgili dilime yapılan güncellemeleri kapsamlandırırken yeni başvurudan kaynaklanan sonsuz döngüyü önlemek için türetilmiş değerleri önbelleğe alabilirsiniz.

Bir DevTools Hata Ayıklama Etiketi

Hata ayıklama amacıyla bir depoya etiket ekleyip güncellemeleri günlüğe kaydedebilir veya hangi deponun ne zaman değiştiğini izleyebilmek için tarayıcı geliştirici araçlarıyla bütünleştirebilirsiniz.

Güncelleme işleminin içine geliştirme bayrağının arkasında koşullu olarak yerleştirilen basit bir konsol günlüğü bile, depoyu oluştururken durum akışını anlamanıza yardımcı olur.

Depoyu React İçinde ve Dışında Sınama

Depo düz JavaScript olduğundan mantığını doğrudan sınayabilirsiniz: güncelleme işlevini çağırıp getSnapshot'ın yeni değeri döndürdüğünü doğrulayabilir, herhangi bir şey oluşturmaya gerek bırakmayabilirsiniz.

Depoyu, ondan veri okuyan bir bileşen oluşturarak React içinde de sınayabilir ve güncellemeden sonra yeniden oluşturmaların gerçekleştiğini doğrulayabilirsiniz. Böylece hem depoyu hem de React ile bütünleşmesini kapsarsınız.

Hızlı Kontrol: Özel Deponun Abone Olma İşlevi

Özel deponun abone olma yönteminin sözleşmesini hatırlayın.

Özel Depo Oluşturma Özeti

Özel bir depoda durum, abone olma ve getSnapshot bulunmalıdır. Bir createStore fabrikası ile dinleyicilere bildirim gönderen bir güncelleme işlevi, Provider olmadan paylaşılan genel bir durum sağlar; çünkü modül içe aktarmaları tek bir örneği paylaşır.

Yeniden oluşturmaları sınırlamak için birden çok durum dilimi deposu ve seçici kullanırken başvuruların kararlı olması gerektiğini unutmayın. Zustand v4+ tam olarak bu düzen üzerine kuruludur ve düz JS deposunu React içinde ve dışında sınamak kolaydır.

Sıkça Sorulan Sorular

“useSyncExternalStore ile Özel Mağaza Oluşturma” dersi ücretsiz mi?

Evet — “useSyncExternalStore ile Özel Mağaza Oluşturma” 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.

“useSyncExternalStore ile Özel Mağaza Oluşturma” dersinde ne öğreneceğim?

Sıfırdan hafif bir harici mağaza uygulayın ve useSyncExternalStore ile React'e bağlayı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 4. dersidir.

“useSyncExternalStore ile Özel Mağaza Oluşturma” 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

  1. Harici Mağaza Aboneliklerindeki Sorun
  2. useSyncExternalStore API'si ve Parametreleri
  3. Tarayıcı API'lerine Abone Olma
  4. useSyncExternalStore ile Özel Mağaza Oluşturma
← React Academy Sayfasına Dön