0Pricing
React Academy · Ders

Asenkron Kaynaklar için use() Hook'u

React 19'da use() hook'u ile oluşturma sırasında promise'leri ve context'i okuyun.

Asenkron Kaynaklar için use() Hook'u, 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 React 19'un use() kancasını kullanarak vaatleri ve bağlam değerlerini doğrudan işleme işlevi içinde okuyacak ve eşzamansız verilere erişimi basitleştireceksiniz.

use() Nedir?

use(), bir kaynağı — vaat veya Context olabilir — işleme işlevi içinde eşzamanlı olarak okuyan bir React 19 kancasıdır. Vaat beklemedeyse bileşen askıya alınır ve en yakın Suspense sınırı yedek içeriği gösterir.
import { use } from 'react';

function UserProfile({ userPromise }) {
  const user = use(userPromise); // suspends if pending
  return <h1>{user.name}</h1>;
}

Vaatleri Özellik Olarak Aktarma

React 19'da yaygın bir kalıp şöyledir: Sunucu Bileşeni bir vaat (örneğin veritabanı sorgusu) oluşturur, bunu bir İstemci Bileşenine aktarır ve İstemci Bileşeni vaadi use() ile okur. Suspense sınırı üstte herhangi bir yerde bulunabilir.
// Server Component
export default function Page() {
  const userPromise = fetchUser(1); // NOT awaited
  return (
    <Suspense fallback={<Spinner />}>
      <Profile userPromise={userPromise} />
    </Suspense>
  );
}

// Client Component
'use client';
export function Profile({ userPromise }) {
  const user = use(userPromise);
  return <p>{user.name}</p>;
}

Veriler için use() ve useEffect

Veri getirmek için useEffect kullanmak, yüklenme ve hata durumlarını elle yönetmenizi gerektirir. Suspense ile birlikte use() kullanmak bu gereksiz şablon kodunu ortadan kaldırır; bileşen gövdesi verileri eşzamanlıymış gibi doğrudan okur.

Bağlam için use()

use(), useContext gibi bağlam değerlerini de okuyabilir. Aradaki fark, use() işlevinin koşullu olarak (if veya döngülerin içinde) çağrılabilmesidir; useContext ise Kanca Kurallarına uyar.
import { use } from 'react';
import { ThemeContext } from './ThemeContext';

function Button({ danger }) {
  if (danger) {
    const theme = use(ThemeContext); // conditional — allowed with use()!
    return <button style={{ color: theme.red }}>Delete</button>;
  }
  return <button>Click</button>;
}

ErrorBoundary ile Hata İşleme

use() işlevine aktarılan vaat reddedilirse React hatayı fırlatır. Hatayı yakalayıp yedek içerik göstermek için bileşeni bir ErrorBoundary ile sarın.
<ErrorBoundary fallback={<Error />}>
  <Suspense fallback={<Loading />}>
    <Profile userPromise={fetchUser(id)} />
  </Suspense>
</ErrorBoundary>

Yalnızca İstemci Bileşenlerinde use()

Vaatlerle birlikte use() kullanımı İstemci Bileşenlerinde çalışır. Sunucu Bileşenlerinde doğrudan async/await kullanın; sunucuda vaatlerle use() kullanmanız gerekmez.

Vaatleri Önbelleğe Alma

Bir bileşen yeniden işlenirse yeniden veri getirmeyi önlemek için aynı vaat başvurusunu almalıdır. Vaatleri bileşenin dışında veya kararlı bir konumda (sunucu, önbellek ya da durum) oluşturup özellik olarak aktarın.

use() ile Akış Oluşturma

use() işlevini akış sağlayan SSR ile birleştirmek, React'in sayfa HTML'sini akışla göndermesine, Suspense yedek içeriğini göstermesine ve ardından vaat çözümlendiğinde çözümlenmiş içeriği aynı HTTP bağlantısı üzerinden göndermesine olanak tanır.

Yinelenen Çağrıları Önlemek için React.cache()

Sunucuda React.cache() (veya Next.js'in unstable_cache işlevi), aynı eşzamansız işleve yapılan birden çok çağrıyı tek bir işleme indirger. Böylece birden çok bileşen aynı promise'i kullansa bile veritabanına yalnızca bir kez erişilir.

Hızlı Kontrol

use(promise) çağrıldığında promise hâlâ beklemedeyse bir İstemci Bileşeni ne yapar?

Özet

use(promise), eşzamansız verileri oluşturma sırasında eşzamanlı olarak okur ve veri beklemedeyse oluşturmayı askıya alır. use(context), useContext'in aksine koşullu olarak çalışır. Yükleme durumu için her zaman Suspense, hatalar için de ErrorBoundary kullanın.

Sıradaki

Sıradaki ders: **React Eylemleri ve useActionState** — sunucu ve istemci eylemlerini tanımlayacak, bekleme durumuyla form gönderimlerini yöneteceksiniz.

Sıkça Sorulan Sorular

“Asenkron Kaynaklar için use() Hook'u” dersi ücretsiz mi?

Evet — “Asenkron Kaynaklar için use() Hook'u” 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.

“Asenkron Kaynaklar için use() Hook'u” dersinde ne öğreneceğim?

React 19'da use() hook'u ile oluşturma sırasında promise'leri ve context'i okuyun. 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.

“Asenkron Kaynaklar için use() Hook'u” 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. React Sunucu Bileşenleri Açıklaması
  2. Asenkron Kaynaklar için use() Hook'u
  3. React Eylemleri ve useActionState
  4. Anında Geri Bildirim için useOptimistic
← React Academy Sayfasına Dön