Form Eylemleri: Değişiklikler için API Rotalarının Yerine Geçme
Tam yeniden doğrulamayla, gereksiz kod yazmadan form değişiklikleri yapmak için Sunucu Eylemlerini doğrudan HTML form eylemlerine bağlayın.
Form Eylemleri: Değişiklikler için API Rotalarının Yerine Geçme, 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.
Geleneksel Yaklaşım
Geleneksel Next.js uygulamalarında form gönderimleri, onSubmit işleyicisi bulunan ve verileri bir API rotasına POST etmek için fetch() çağıran bir istemci bileşeni gerektirir. Bu yaklaşım çalışır; ancak hem istemci tarafındaki veri alma mantığını hem de sunucu tarafındaki rota işleyicisini ayrı ayrı yazmayı ve sürdürmeyi gerektirir.
Sunucu Eylemleri Formları Basitleştirir
Sunucu Eylemleriyle veri alma çağrısını ve API rotasını tek bir işlevle değiştirirsiniz. Form öğesi, Sunucu Eylemini action özelliği olarak alır: <form action={serverAction}>. React, gönderimi yakalar ve eylemi form verileriyle otomatik olarak çağırır.
FormData ile Form Alanlarına Erişme
Bir form tarafından tetiklendiğinde Sunucu Eylemi, bağımsız değişken olarak otomatik şekilde bir FormData nesnesi alır. Tek tek alanlara, değeri bir metin olarak döndüren formData.get('email') ile erişirsiniz. Çoklu seçim alanları için getAll() dahil olmak üzere tüm standart FormData yöntemleri kullanılabilir.
Eylemlerden Sonuç Döndürme
Bir Sunucu Eylemi, istemcinin kullanabileceği serileştirilebilir bir değer döndürebilir. { error: 'Email already exists' } gibi bir hata nesnesi veya { success: true } gibi bir başarı göstergesi döndürmek, istemcinin tam sayfa yenilemesi olmadan arayüzü buna göre güncellemesini sağlar.
Sayfa Bileşenleri Basit Kalır
Form eylemi bir Sunucu Eylemi olduğundan, formu barındıran sayfa bileşeninin İstemci Bileşeni olması gerekmez. Sunucu formu statik HTML olarak oluşturur ve yalnızca hata görüntüleme gibi etkileşimli bölümler istemci tarafı JavaScript gerektirir. Bu, istemci paketini önemli ölçüde küçültür.
Yerleşik Aşamalı Geliştirme
action={serverAction} içeren bir form, JavaScript etkin olmasa da çalışır. Tarayıcı standart bir HTML form POST işlemi gerçekleştirir, sunucu eylemi yürütür ve güncellenmiş sayfayı döndürür. Bu gerçek aşamalı geliştirme sayesinde form, tüm ortamlarda işlevlerini zarif bir şekilde azaltır.
Veri Değişikliğinden Sonra Verileri Yeniden Doğrulama
Bir Sunucu Eylemi verileri değiştirdikten sonra önbelleğe alınmış sayfa verileri yenilenmelidir. Eylem içinde revalidatePath('/dashboard') çağrısı yapmak, Next.js önbelleğini bu yol için geçersiz kılar ve bir sonraki isteğin güncel verileri almasını sağlar. Bu, veri değişikliklerinden sonra sunucu tarafından oluşturulan sayfaları güncel tutmanın standart yoludur.
Ayrıntılı Önbellek Geçersiz Kılma
revalidateTag('user-data'), revalidatePath işlevine göre daha ayrıntılı önbellek geçersiz kılma olanağı sunar. Veri getirme çağrılarını next: { tags: ['user-data'] } ile etiketler ve ardından bu verileri hangi yolların görüntülediğinden bağımsız olarak, etiketlenen tüm verileri Sunucu Eylemi içinden tek seferde geçersiz kılabilirsiniz.
Eylemden Sonra Yönlendirme
Sunucu Eylemleri, başarılı bir veri değişikliğinden sonra next/navigation modülünden redirect('/success') çağrısı yaparak kullanıcıyı yeni bir sayfaya yönlendirebilir. Bu yönlendirme sunucu tarafında gerçekleştirilir; dolayısıyla tarayıcı istemci tarafı yönlendirmesi yerine uygun bir gezinme yanıtı alır.
startTransition ile Form Dışı Veri Değişiklikleri
Sunucu Eylemleri yalnızca form gönderimleriyle sınırlı değildir. Düğme tıklamaları ve diğer form dışı tetikleyiciler için eylem çağrısını startTransition(() => action(arg)) içine sarın. Bu, gezinmeyi bir geçiş olarak işaretler ve eylem sunucuda yürütülürken React'in mevcut arayüzü görünür tutmasını sağlar.
Eylemler İçinde Doğrulama
Sunucu Eylemleri, sunucu tarafı doğrulama için doğru yerdir. FormData alanlarını doğrulayın, doğrulama başarısız olursa hataları döndürün ve yalnızca tüm alanlar geçerliyse veri değişikliğine devam edin. Zod gibi kütüphaneler burada iyi çalışır: FormData'yı tür belirtilmiş bir şemaya ayrıştırın ve başarısızlık durumunda hata eşlemesini döndürün.
FormData Sorusu
Bir form gönderimi tarafından tetiklendiğinde Sunucu Eylemi bağımsız değişken olarak ne alır?
Ders Özeti
Sunucu Eylemleri, form veri değişiklikleri için veri alma + API rotası kalıbının yerini alır. Formun action özelliği bir Sunucu Eylemini doğrudan kabul eder ve bu eylem bir FormData nesnesi alır. Eylemler, istemci arayüzü güncellemeleri için serileştirilebilir sonuçlar döndürür, önbellek geçersiz kılma amacıyla revalidatePath ve revalidateTag kullanımını destekler ve JavaScript olmadan aşamalı olarak çalışır.
Sıkça Sorulan Sorular
“Form Eylemleri: Değişiklikler için API Rotalarının Yerine Geçme” dersi ücretsiz mi?
Evet — “Form Eylemleri: Değişiklikler için API Rotalarının Yerine Geçme” 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.
“Form Eylemleri: Değişiklikler için API Rotalarının Yerine Geçme” dersinde ne öğreneceğim?
Tam yeniden doğrulamayla, gereksiz kod yazmadan form değişiklikleri yapmak için Sunucu Eylemlerini doğrudan HTML form eylemlerine 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 2. dersidir.
“Form Eylemleri: Değişiklikler için API Rotalarının Yerine Geçme” 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
- React 19 ve Next.js'te Sunucu Eylemleri
- Form Eylemleri: Değişiklikler için API Rotalarının Yerine Geçme
- useActionState ve useFormStatus
- Sunucu Eylemleriyle Aşamalı Geliştirme