Next.js App Router memperkenalkan sistem routing baru berbasis file-system yang lebih fleksibel dibanding Pages Router. Setiap folder di dalam direktori app/ secara otomatis menjadi route, dan file page.tsx di dalamnya akan dirender sebagai halaman.
Routing ini mendukung nested layout, dynamic route, API route, route groups, dan banyak fitur modern lainnya yang membuat struktur aplikasi lebih rapi dan scalable.
📂 Struktur Routing Dasar
Contoh struktur:
| Path | URL | Penjelasan |
|---|---|---|
app/page.tsx | / | Homepage |
app/about/page.tsx | /about | Halaman biasa |
app/blog/page.tsx | /blog | Halaman list blog |
app/blog/[slug]/page.tsx | /blog/my-first-post | Dynamic route |
🔀 Dynamic Routes [param]
Digunakan untuk halaman dinamis seperti artikel blog, profil user, atau detail produk.
Contoh akses parameter:
URL yang valid:
📦 Catch-All & Optional Catch-All Routes
Digunakan untuk struktur path yang fleksibel (multi-level):
Catch-All [...slug]
Match:
Optional Catch-All [[...slug]]
Match:
🏗 Route Groups ( )
Folder dengan tanda kurung tidak menjadi bagian URL, tetapi berguna untuk grouping dan layout berbeda.
| File | URL |
|---|---|
app/(site)/page.tsx | / |
app/(site)/blog/page.tsx | /blog |
app/(auth)/login/page.tsx | /login |
Cocok untuk memisahkan halaman publik, dashboard admin, atau halaman tanpa navbar/footer.
📡 API Routes (Route Handlers)
Tidak lagi di /pages/api, melainkan di:
Contoh:
URL:
⏳ Loading, Error, Not Found Routes
| File | Fungsi |
|---|---|
loading.tsx | Placeholder loading saat fetch data |
error.tsx | Error UI per-folder |
not-found.tsx | 404 custom |
template.tsx | Memaksa re-render layout |
Contoh loading:
📈 Kesimpulan
Next.js App Router membawa arsitektur routing yang powerful:
| Fitur | Kegunaan |
|---|---|
| Automatic file-based routing | Tidak butuh react-router |
| Nested & shared layouts | Mudah kelola UI global |
| Dynamic & catch-all routes | Sangat fleksibel untuk konten |
| Route groups | Struktur besar tetap rapi |
| API routes terintegrasi | Full-stack in one project |
App Router adalah standar modern untuk aplikasi React skala kecil hingga besar — cepat, sederhana, scalable.