Study
Next.js

Data Fetching di Server Component

Penjelasan

Karena Server Component dirender di server (bukan browser), komponennya BOLEH langsung berupa fungsi async dan memanggil fetch() atau query database langsung di dalamnya — TANPA perlu useEffect, useState untuk loading, atau library data-fetching tambahan seperti di React biasa. Next.js otomatis menunggu Promise-nya selesai sebelum mengirim HTML ke browser.

Contoh Konsep

// app/produk/page.js — Server Component, boleh langsung async
export default async function DaftarProduk() {
    const res = await fetch('https://api.contoh.com/produk');
    const produk = await res.json();

    return (
        <ul>
            {produk.map((item) => <li key={item.id}>{item.nama}</li>)}
        </ul>
    );
}

Praktikum

Buat Server Component async DaftarArtikel yang fetch dari 'https://api.contoh.com/artikel', lalu tampilkan sebagai daftar <li> dengan judul tiap artikel, key memakai item.id.

Editor Latihan

Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.

Tips

Fungsi async langsung sebagai komponen HANYA berlaku untuk Server Component — Client Component ('use client') TIDAK BOLEH berupa fungsi async, untuk fetch data di Client Component tetap harus pakai useEffect seperti React biasa (dibahas di materi Fetching Data di Client Component).