0Pricing
React Academy · Pelajaran

Penjelasan React Server Components

Pahami apa itu RSC, perbedaannya dengan komponen klien, dan kapan masing-masing digunakan.

Penjelasan React Server Components adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 1 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.

Selamat Datang

Dalam pelajaran ini, Anda akan mempelajari apa itu React Server Components (RSC), perbedaannya dengan komponen klien, dan kapan masing-masing jenis sebaiknya digunakan.

Dua Dunia Komponen

React 19 dan Next.js App Router membagi komponen menjadi dua dunia: **Komponen Server** (dirender di server dan tidak interaktif) serta **Komponen Klien** (dirender di server dan klien, serta memiliki state dan pengendali peristiwa).

Komponen Server sebagai Bawaan

Di Next.js App Router, setiap komponen secara bawaan merupakan Komponen Server. Anda dapat mengaktifkan mode Komponen Klien dengan menambahkan 'use client' di bagian atas berkas.
// Server Component (default, no directive needed)
export default async function Page() {
  const data = await fetch('/api/posts').then(r => r.json());
  return <ul>{data.map(p => <li key={p.id}>{p.title}</li>)}</ul>;
}

Komponen Klien

Tambahkan 'use client' di bagian atas berkas untuk menjadikannya Komponen Klien. Komponen Klien dapat menggunakan useState, useEffect, pengendali peristiwa, dan API peramban.
'use client';
import { useState } from 'react';

export function Counter() {
  const [n, setN] = useState(0);
  return <button onClick={() => setN(n+1)}>{n}</button>;
}

Kemampuan Komponen Server

Komponen Server dapat: menunggu kueri basis data, membaca sistem berkas, mengakses rahasia lingkungan, mengimpor paket besar yang hanya digunakan di server, dan melakukan render tanpa mengirim JavaScript apa pun ke klien.
// Fetch from DB directly in the component!
import { db } from '@/lib/db';

export default async function UserList() {
  const users = await db.select().from(usersTable);
  return <ul>{users.map(u => <li key={u.id}>{u.name}</li>)}</ul>;
}

Keterbatasan Komponen Server

Komponen Server CANNOT: menggunakan useState, useEffect, pengendali peristiwa (onClick, dan sebagainya), API peramban (window, localStorage), atau Context. Semua itu memerlukan 'use client'.

Menggabungkan Komponen Server dan Klien

Pola yang umum adalah: Komponen Server mengambil data dan meneruskannya ke Komponen Klien sebagai props. Server menangani data, sedangkan klien menangani interaksi.
// Server Component
export default async function Page() {
  const user = await getUser();
  return <ProfileEditor user={user} />; // client component
}

// Client Component (separate file)
'use client';
export function ProfileEditor({ user }) {
  const [name, setName] = useState(user.name);
  return <input value={name} onChange={e => setName(e.target.value)} />;
}

Aturan Batas Klien

Setelah Anda menandai sebuah berkas dengan 'use client', semua komponen yang diimpornya juga diperlakukan sebagai komponen klien. Batas antara server dan klien berlaku pada tingkat berkas.

Tanpa JavaScript untuk Komponen Server

Komponen Server melakukan render menjadi HTML di server. Kode komponennya NEVER dikirim ke peramban. Hal ini secara signifikan mengurangi ukuran bundel JavaScript.

Komponen Server vs SSR

SSR tradisional melakukan render halaman penuh menjadi HTML, tetapi mengirimkan semua kode komponen ke klien untuk proses hidrasi. Komponen Server sama sekali tidak mengirimkan kodenya ke klien — hanya hasil rendernya.

Pemeriksaan Singkat

Direktif apa yang Anda tambahkan ke sebuah berkas untuk menjadikannya Komponen Klien React di Next.js App Router?

Rangkuman

Komponen Server berjalan di server, dapat mengakses basis data dan rahasia, serta tidak mengirimkan JS ke klien. Komponen Klien menambahkan 'use client' dan mendukung state, efek, serta pengendali peristiwa. Gabungkan keduanya: server mengambil data, klien berinteraksi.

Selanjutnya

Pelajaran berikutnya: **Hook use() untuk Resource Asinkron** — Anda akan membaca Promise dan konteks saat render dengan hook use() dari React 19.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Penjelasan React Server Components” gratis?

Ya — teks lengkap “Penjelasan React Server Components” 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 “Penjelasan React Server Components”?

Pahami apa itu RSC, perbedaannya dengan komponen klien, dan kapan masing-masing digunakan. 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 1 dari 4.

Berapa lama pelajaran “Penjelasan React Server Components” 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. Penjelasan React Server Components
  2. Hook use() untuk Sumber Daya Asinkron
  3. React Actions & useActionState
  4. useOptimistic untuk Umpan Balik Seketika
← Kembali ke React Academy