0Pricing
React Academy · Pelajaran

Rute Dinamis & Grup Rute

Buat segmen dinamis [slug], grup rute dengan (folder), dan rute paralel.

Rute Dinamis & Grup Rute adalah pelajaran React Academy gratis di CoddyKit. Ini adalah pelajaran 3 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.

Segmen Dinamis

Bungkus nama folder dalam tanda kurung siku untuk membuat segmen dinamis. Nilainya tersedia dalam params yang diteruskan ke halaman.

// app/products/[id]/page.tsx
export default function ProductPage({ params }: { params: { id: string } }) {
  return <h1>Product {params.id}</h1>;
}
// → /products/123 → params.id = '123'

Param Bertipe

Param selalu berupa string dalam URL. Uraikan secara eksplisit jika param tersebut adalah ID numerik.

export default async function PostPage({ params }: { params: { slug: string } }) {
  const post = await getPostBySlug(params.slug);
  if (!post) notFound();
  return <article>{post.content}</article>;
}

Segmen Penangkap Semua

Gunakan [...slug] untuk mencocokkan sejumlah segmen jalur. Nilainya berupa array string.

// app/docs/[...path]/page.tsx
export default function DocsPage({ params }: { params: { path: string[] } }) {
  // /docs/react/hooks → params.path = ['react', 'hooks']
  return <DocViewer path={params.path} />;
}

Penangkap Semua Opsional

[[...slug]] juga mencocokkan segmen akar—berguna untuk awalan jalur opsional.

// app/[[...lang]]/page.tsx
// Matches /, /en, /en/about, /fr/products/123
export default function Page({ params }: { params: { lang?: string[] } }) {
  const lang = params.lang?.[0] ?? 'en';
  return <div lang={lang}>...</div>;
}

generateStaticParams

Ekspor generateStaticParams() untuk melakukan prarender rute dinamis saat pembangunan, sehingga menghasilkan HTML statis untuk setiap kombinasi param.

export async function generateStaticParams() {
  const posts = await getPosts();
  return posts.map(p => ({ slug: p.slug }));
}
// → builds /blog/hello-world, /blog/react-tips etc. statically

Grup Rute — (folder)

Bungkus nama folder dalam tanda kurung untuk membuat grup rute. Grup ini mengatur file tanpa menambahkan segmen URL.

// File structure:
// app/(marketing)/about/page.tsx → /about
// app/(marketing)/blog/page.tsx  → /blog
// app/(app)/dashboard/page.tsx   → /dashboard
// (marketing) and (app) don't appear in URLs

Grup Rute dengan Tata Letak Bersama

Setiap grup rute dapat memiliki layout.tsx sendiri, sehingga bagian yang berbeda dapat memiliki tata letak yang berbeda tanpa bersarang dalam URL.

// app/(marketing)/layout.tsx — marketing shell
// app/(app)/layout.tsx — authenticated app shell
// Both groups share app/layout.tsx as the root

Rute Paralel — @slot

Awali folder dengan @ untuk membuat slot. Slot dirender secara bersamaan di tata letak induk—berguna untuk modal, layar terbagi, atau tab.

// app/@modal/login/page.tsx
// app/layout.tsx
export default function RootLayout({ children, modal }) {
  return (
    <div>
      {children}
      {modal} {/* renders @modal/login/page.tsx side by side */}
    </div>
  );
}

Rute Pencegat — (..)

Gunakan notasi (..) untuk mencegat rute dan merendernya secara sebaris (misalnya, membuka foto dalam modal, bukan menavigasi ke halaman baru).

// Soft navigation shows modal:
// app/@modal/(..)/photos/[id]/page.tsx
// Hard navigation shows full page:
// app/photos/[id]/page.tsx

Metadata Rute Dinamis

Ekspor fungsi asinkron generateMetadata dalam rute dinamis untuk menetapkan tag SEO per halaman berdasarkan param rute.

export async function generateMetadata({ params }: { params: { id: string } }) {
  const product = await getProduct(params.id);
  return { title: product.name, description: product.description };
}

Pemeriksaan Singkat

Apa fungsi tanda kurung yang membungkus nama folder dalam Perute Aplikasi Next.js?

Ringkasan

[id] membuat segmen dinamis, [...slug] menangkap semua subjalur, dan [[...slug]] menjadikannya opsional. Grup rute dengan (name) mengatur kode tanpa memengaruhi URL dan memungkinkan tata letak per grup. Gunakan generateStaticParams untuk prarender saat pembangunan.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Rute Dinamis & Grup Rute” gratis?

Ya — teks lengkap “Rute Dinamis & Grup Rute” 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 “Rute Dinamis & Grup Rute”?

Buat segmen dinamis [slug], grup rute dengan (folder), dan rute paralel. 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 3 dari 4.

Berapa lama pelajaran “Rute Dinamis & Grup Rute” 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. Konvensi File App Router
  2. Komponen Server vs Klien dalam Next.js
  3. Rute Dinamis & Grup Rute
  4. API Metadata & SEO dalam App Router
← Kembali ke React Academy