0Pricing
React Academy · Ders

React Eylemleri ve useActionState

Sunucu ve istemci eylemlerini tanımlayın, form gönderimlerini yönetin ve bekleyen durumları takip edin.

React Eylemleri ve useActionState, 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.

Hoş Geldiniz

Bu derste React 19 Eylemlerini tanımlayacak, form gönderim durumunu yönetmek için useActionState kullanacak, bekleme ve hata durumlarını düzenli bir şekilde ele alacaksınız.

React Eylemleri Nedir?

Eylemler, formun `action` özelliğine (veya düğmenin `formAction` özelliğine) aktardığınız eşzamansız işlevlerdir. React 19 bunlara özel davranır: bekleme durumunu izler, hataları yönetir ve Geçişlerle otomatik olarak bütünleşir.

Next.js'te Sunucu Eylemleri

App Router kullanılan Next.js'te bir işlevin başına 'use server' ekleyerek onu bir Sunucu Eylemine dönüştürün. Bir form gönderildiğinde React bu işlevi sunucuda çağırır; API rotası oluşturmanız gerekmez.
'use server';

export async function createPost(formData) {
  const title = formData.get('title');
  await db.insert(posts).values({ title });
  revalidatePath('/posts');
}

Bir Formda Eylem Kullanma

Sunucu veya istemci eylemini doğrudan formun `action` özelliğine aktarın. Form gönderildiğinde React, FormData'yı bu işleve göndererek onu çağırır.
import { createPost } from './actions';

export default function NewPostForm() {
  return (
    <form action={createPost}>
      <input name="title" />
      <button type="submit">Create</button>
    </form>
  );
}

useActionState

useActionState, bir eylemi sararak size geçerli durumu (son eylem sonucunu) ve bir bekleme mantıksal değerini verir. Sarılmış işlev, form action'ına aktarılır.
'use client';
import { useActionState } from 'react';
import { createPost } from './actions';

function NewPostForm() {
  const [state, action, isPending] = useActionState(createPost, null);
  return (
    <form action={action}>
      {state?.error && <p>{state.error}</p>}
      <input name="title" />
      <button disabled={isPending}>Create</button>
    </form>
  );
}

Durum Döndüren Eylem

useActionState ile kullanıldığında sunucu eylemi `(prevState, formData)` değerlerini alır. Başarı veya hata bilgisi içeren bir nesne döndürün; bu nesne yeni durum olur.
'use server';

export async function createPost(prevState, formData) {
  const title = formData.get('title')?.toString();
  if (!title) return { error: 'Title is required' };
  await db.insert(posts).values({ title });
  return { success: true };
}

Devre Dışı Bırakılmış Gönderim için isPending

Eylem çalışırken gönderim düğmesini devre dışı bırakmak ve bir yükleme göstergesi göstermek için useActionState'ten aldığınız isPending değerini kullanın.
<button type="submit" disabled={isPending}>
  {isPending ? 'Saving...' : 'Save'}
</button>

İstemci Eylemleri

Eylemlerin sunucu tarafında çalışması zorunlu değildir. İstemci eylemi, 'use server' içermeyen normal bir eşzamansız işlevdir. Yine de useActionState tarafından sağlanan bekleme ve durum yönetimini kullanır.
async function clientAction(prevState, formData) {
  const res = await fetch('/api/post', {
    method: 'POST', body: formData,
  });
  if (!res.ok) return { error: 'Failed' };
  return { success: true };
}

Alt Bileşenler için useFormStatus

Derinlerde iç içe yer alan bir gönderim düğmesinde, özellikleri bileşenler arasında tek tek aktarmadan üst formun bekleme durumunu okumak için `useFormStatus()` kullanın.
'use client';
import { useFormStatus } from 'react-dom';

function SubmitButton() {
  const { pending } = useFormStatus();
  return <button disabled={pending}>Submit</button>;
}

Aşamalı Geliştirme

Sunucu Eylemleriyle birlikte kullanılan React Eylemleri, JavaScript olmadan da çalışır (aşamalı geliştirme). Tarayıcı, Next.js işleyicisine yerel bir form POST isteği gönderir; böylece özellik JS yüklenmeden önce de çalışır.

Hızlı Kontrol

Bir form eylemi çalışırken yükleme durumunu göstermenizi sağlayan useActionState ne döndürür?

Özet

React Eylemleri, form action'ına aktarılan eşzamansız işlevlerdir. useActionState, bir eylemi sararak size durum, sarılmış bir eylem işlevi ve isPending verir. Sunucu Eylemleri 'use server' eklenerek sunucuda çalıştırılır.

Sıradaki

Sıradaki ders: **Anında Geri Bildirim için useOptimistic** — bir sunucu değişikliği sürerken iyimser kullanıcı arayüzü güncellemeleri göstereceksiniz.

Sıkça Sorulan Sorular

“React Eylemleri ve useActionState” dersi ücretsiz mi?

Evet — “React Eylemleri ve useActionState” 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.

“React Eylemleri ve useActionState” dersinde ne öğreneceğim?

Sunucu ve istemci eylemlerini tanımlayın, form gönderimlerini yönetin ve bekleyen durumları takip edin. 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.

“React Eylemleri ve useActionState” 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