0Pricing
React Academy · Ders

Engellemeyen Arayüz Güncellemeleri için useTransition

Arayüzün yanıt vermeye devam etmesi için maliyetli durum güncellemelerini startTransition ile sarın.

Engellemeyen Arayüz Güncellemeleri için useTransition, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 2. 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.

Hoş Geldiniz

Bu derste, pahalı durum güncellemelerini acil olmayan güncellemeler olarak işaretlemek için useTransition kancasını kullanacak, yoğun oluşturma işlemleri arka planda sürerken arayüzü duyarlı tutacaksınız.

Engelleyici Güncelleme Sorunu

Büyük bir listeyi filtreleyen arama kutusuna yazdığınızda React, her tuş vuruşunda filtrelenmiş listenin tamamını yeniden oluşturmalıdır. Bu, girdinin hemen güncellenmesini engeller ve arayüzün yavaş tepki veriyormuş gibi hissettirmesine neden olur.

React Eşzamanlı Modu

React 18, eşzamanlı oluşturmayı tanıttı: React bir durum güncellemesini oluşturmaya başlayabilir, bu işlemi duraklatabilir ve yazı yazmak gibi daha acil güncellemelere öncelik verebilir. useTransition, güncellemeleri düşük öncelikli geçişler olarak sınıflandırmanızı sağlayan kancadır.

useTransition Temelleri

useTransition `[isPending, startTransition]` döndürür. Acil olmayan durum güncellemesini `startTransition()` içine alın. React, geçiş yerine denetimli girdi gibi diğer güncellemelere öncelik verir.
const [isPending, startTransition] = useTransition();

const handleChange = (e) => {
  setInputValue(e.target.value); // urgent: update input immediately
  startTransition(() => {
    setFilteredList(filter(e.target.value)); // non-urgent
  });
};

Yükleme Arayüzü için isPending

Geçiş işlenirken `isPending`, `true` değerindedir. Bunu bir yükleme simgesi göstermek veya güncelliğini yitirmiş sonuç listesini soluklaştırmak için kullanabilirsiniz; böylece kullanıcılar bir güncellemenin sürdüğüne dair geri bildirim alır.
return (
  <>
    <input value={inputValue} onChange={handleChange} />
    {isPending && <Spinner />}
    <ResultList items={filteredList} />
  </>
);

startTransition İçine Ne Konur?

startTransition içine yalnızca durum güncellemelerini koyun; eşzamansız işlemleri koymayın. Pahalı oluşturmayı tetikleyen durum güncellemesi sarmalamanız gereken işlemdir.
// Correct
startTransition(() => setTab('heavy'));

// Wrong — async work outside React state
startTransition(async () => { await fetch(...); }); // not supported

Kanca Olmadan startTransition

`isPending` değerine ihtiyacınız yoksa kancayı kullanmadan React'ten doğrudan `startTransition` içe aktarabilir ve çağırabilirsiniz.
import { startTransition } from 'react';

startTransition(() => setQuery(newValue));

Sekme Değiştirme Örneği

Yaygın bir kullanım alanı, bir sekmeye tıklayarak ağır bir bileşene geçmektir. Ağır bileşen arka planda oluşturulurken etkin sekme göstergesinin hemen güncellenmesi için sekme değişikliğini startTransition içine alın.
const [tab, setTab] = useState('posts');
const [isPending, startTransition] = useTransition();

const selectTab = (t) =>
  startTransition(() => setTab(t));

useTransition ve useDeferredValue Karşılaştırması

Durum güncellemesinin sahibi sizseniz (setState çağırıyorsanız) useTransition kullanın. Doğrudan geciktiremeyeceğiniz bir özellik veya değer alıyorsanız useDeferredValue kullanın; bu kanca değerin kendisini geciktirir.

İyileştirmenin Yerine Geçmez

startTransition oluşturmayı hızlandırmaz; yalnızca erteler. Bir bileşenin oluşturulması 500 ms sürüyorsa yine 500 ms sürecektir. Gerçekten yavaş listeler için bunu React.memo veya sanallaştırma ile birlikte kullanın.

Kısa Kontrol

useTransition içindeki isPending neyi ifade eder?

Özet

useTransition, durum güncellemelerini acil olmayan geçişler olarak sınıflandırmanızı sağlar. Girdi gibi acil güncellemeler hemen oluşturulur; geçişler React'in kapasitesi olduğunda oluşturulur. Yükleme geri bildirimi göstermek için isPending kullanın.

Sırada

Sıradaki ders: **Girdi Gecikmeli İşleme için useDeferredValue** — girdiyi hızlı ve duyarlı tutarken arayüzün yavaş bölümlerinin yeniden oluşturulmasını geciktireceksiniz.

Sıkça Sorulan Sorular

“Engellemeyen Arayüz Güncellemeleri için useTransition” dersi ücretsiz mi?

Evet — “Engellemeyen Arayüz Güncellemeleri için useTransition” 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.

“Engellemeyen Arayüz Güncellemeleri için useTransition” dersinde ne öğreneceğim?

Arayüzün yanıt vermeye devam etmesi için maliyetli durum güncellemelerini startTransition ile sarı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 2. dersidir.

“Engellemeyen Arayüz Güncellemeleri için useTransition” 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. Yarış Koşulları ve Effect Temizleme
  2. Engellemeyen Arayüz Güncellemeleri için useTransition
  3. Girdi Sıklığını Azaltmak için useDeferredValue
  4. Veri ve Kod Sınırları için Suspense
← React Academy Sayfasına Dön