0Pricing
React Academy · Pelajaran

Form Actions: Menggantikan Rute API untuk Mutasi

Hubungkan Server Actions langsung ke tindakan formulir HTML untuk melakukan mutasi formulir tanpa kode tambahan yang bertele-tele, dengan validasi ulang penuh.

Form Actions: Menggantikan Rute API untuk Mutasi adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 2 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar React Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus React Academy mencakup 4 pelajaran total.

Pola Tradisional

Dalam aplikasi Next.js tradisional, pengiriman formulir memerlukan komponen klien dengan pengendali onSubmit yang memanggil fetch() untuk mengirim data melalui POST ke rute API. Pola ini dapat digunakan, tetapi Anda harus menulis dan memelihara logika pengambilan data di sisi klien serta pengendali rute di sisi server secara terpisah.

Tindakan Server Menyederhanakan Formulir

Dengan Tindakan Server, Anda mengganti panggilan pengambilan data dan rute API dengan satu fungsi. Elemen formulir menerima Tindakan Server sebagai properti action: <form action={serverAction}>. React mencegat pengiriman tersebut dan secara otomatis memanggil tindakan dengan data formulir.

Mengakses Bidang Formulir dengan FormData

Tindakan Server secara otomatis menerima objek FormData sebagai argumennya ketika dipicu oleh formulir. Anda mengakses bidang individual menggunakan formData.get('email'), yang mengembalikan nilainya sebagai string. Semua metode FormData standar tersedia, termasuk getAll() untuk bidang dengan pilihan jamak.

Mengembalikan Hasil dari Tindakan

Tindakan Server dapat mengembalikan nilai yang dapat diserialisasi dan digunakan oleh klien. Mengembalikan objek kesalahan seperti { error: 'Email already exists' } atau penanda keberhasilan seperti { success: true } memungkinkan klien memperbarui antarmuka pengguna tanpa memuat ulang halaman secara penuh.

Komponen Halaman Tetap Sederhana

Karena tindakan formulir adalah Tindakan Server, komponen halaman yang menampung formulir tidak perlu menjadi Komponen Klien. Server merender formulir sebagai HTML statis, dan hanya bagian interaktif—seperti tampilan kesalahan—yang memerlukan JavaScript di sisi klien. Hal ini secara signifikan mengurangi ukuran bundel klien.

Peningkatan Progresif Bawaan

Formulir dengan action={serverAction} tetap berfungsi tanpa JavaScript yang diaktifkan. Peramban melakukan POST formulir HTML standar, server menjalankan tindakan, lalu server mengembalikan halaman yang telah diperbarui. Peningkatan progresif yang sesungguhnya ini membuat formulir tetap berfungsi dengan baik di semua lingkungan.

Memvalidasi Ulang Data setelah Mutasi

Setelah Tindakan Server memutasi data, data halaman yang disimpan dalam tembolok harus diperbarui. Memanggil revalidatePath('/dashboard') di dalam tindakan akan membatalkan tembolok Next.js untuk jalur tersebut, sehingga permintaan berikutnya mengambil data terbaru. Inilah cara standar untuk menjaga halaman yang dirender server tetap mutakhir setelah mutasi.

Invalidasi Tembolok Terperinci

revalidateTag('user-data') menyediakan invalidasi tembolok yang lebih terperinci daripada revalidatePath. Anda memberi tag pada panggilan pengambilan data dengan next: { tags: ['user-data'] }, lalu membatalkan semua data bertag tersebut sekaligus dari dalam Tindakan Server, terlepas dari jalur mana yang menampilkan data itu.

Mengalihkan Setelah Tindakan

Tindakan Server dapat mengalihkan pengguna ke halaman baru setelah mutasi berhasil dengan memanggil redirect('/success') dari modul next/navigation. Pengalihan ini ditangani di sisi server, sehingga peramban menerima respons navigasi yang semestinya, bukan pengalihan di sisi klien.

Mutasi Non-Formulir dengan startTransition

Tindakan Server tidak terbatas pada pengiriman formulir. Untuk klik tombol dan pemicu non-formulir lainnya, bungkus pemanggilan tindakan dalam startTransition(() => action(arg)). Ini menandai navigasi sebagai transisi, sehingga React dapat mempertahankan antarmuka pengguna saat ini tetap terlihat selama tindakan dijalankan di server.

Validasi di Dalam Tindakan

Tindakan Server adalah tempat yang tepat untuk validasi di sisi server. Validasi bidang FormData, kembalikan kesalahan validasi jika tidak lolos, dan lanjutkan ke mutasi hanya jika semua bidang valid. Pustaka seperti Zod terintegrasi dengan baik di sini: uraikan FormData menjadi skema bertipe dan kembalikan peta kesalahan jika gagal.

Pertanyaan tentang FormData

Apa yang diterima Tindakan Server sebagai argumennya ketika dipicu oleh pengiriman formulir?

Ringkasan Pelajaran

Tindakan Server menggantikan pola pengambilan data + rute API untuk mutasi formulir. Properti formulir action dapat langsung menerima Tindakan Server, yang menerima objek FormData. Tindakan mengembalikan hasil yang dapat diserialisasi untuk memperbarui antarmuka pengguna klien, mendukung revalidatePath dan revalidateTag untuk invalidasi tembolok, serta tetap berfungsi secara progresif tanpa JavaScript.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Form Actions: Menggantikan Rute API untuk Mutasi” gratis?

Ya — teks lengkap “Form Actions: Menggantikan Rute API untuk Mutasi” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus React Academy, upgrade ke CoddyKit PRO. Kursus React Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Form Actions: Menggantikan Rute API untuk Mutasi”?

Hubungkan Server Actions langsung ke tindakan formulir HTML untuk melakukan mutasi formulir tanpa kode tambahan yang bertele-tele, dengan validasi ulang penuh. Kamu berlatih React Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai React Academy?

Tidak diperlukan pengalaman sebelumnya. React Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 2 dari 4.

Berapa lama pelajaran “Form Actions: Menggantikan Rute API untuk Mutasi” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran React Academy ini?

Ya. Setiap pelajaran React Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Server Actions di React 19 dan Next.js
  2. Form Actions: Menggantikan Rute API untuk Mutasi
  3. useActionState dan useFormStatus
  4. Peningkatan Bertahap dengan Server Actions
← Kembali ke React Academy