0Pricing
React Academy · Ders

Dinamik Rotalar ve Rota Grupları

[slug] dinamik bölümlerini, (folder) ile rota gruplarını ve paralel rotaları oluşturun.

Dinamik Rotalar ve Rota Grupları, CoddyKit'te ücretsiz bir React Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, React Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. React Academy kursu toplamda 4 dersten oluşur.

Dinamik Segmentler

Dinamik bir segment oluşturmak için klasör adını köşeli parantez içine alın. Değer, sayfaya aktarılan params içinde kullanılabilir.

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

Türü Belirtilmiş Parametreler

Parametreler URL'de her zaman dizelerdir. Sayısal kimlikler için bunları açıkça ayrıştırın.

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

Tümü Yakalayan Segmentler

Her sayıda yol segmentiyle eşleşmek için [...slug] kullanın. Değer, dizelerden oluşan bir dizidir.

// 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} />;
}

İsteğe Bağlı Tümü Yakalayan Segmentler

[[...slug]], kök segmentle de eşleşir; isteğe bağlı yol ön ekleri için kullanışlıdır.

// 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

Dinamik rotaları derleme zamanında önceden oluşturmak ve her parametre bileşimi için statik HTML üretmek üzere generateStaticParams() işlevini dışa aktarın.

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

Rota Grupları — (klasör)

Bir rota grubu oluşturmak için klasör adını parantez içine alın. Bu işlem, URL'ye bir segment eklemeden dosyaları düzenler.

// 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

Paylaşılan Düzenlere Sahip Rota Grupları

Her rota grubunun kendi layout.tsx dosyası olabilir. Böylece URL'de iç içe yerleştirme olmadan farklı bölümlere farklı düzenler verebilirsiniz.

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

Paralel Rotalar — @slot

Bir yuva oluşturmak için klasörün önüne @ ekleyin. Yuvalar, üst düzende aynı anda oluşturulur; kip pencereleri, bölünmüş ekranlar veya sekmeler için kullanışlıdır.

// 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>
  );
}

Araya Giren Rotalar — (..)

Bir rotayı yakalayıp satır içinde oluşturmak için (..) gösterimini kullanın; örneğin yeni bir sayfaya gitmek yerine bir fotoğrafı kip penceresinde açabilirsiniz.

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

Dinamik Rota Üst Bilgileri

Rota parametrelerine göre sayfa başına SEO etiketleri ayarlamak için dinamik rotalarda eşzamansız bir generateMetadata işlevini dışa aktarın.

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

Hızlı Kontrol

Next.js App Router'da bir klasör adını parantez içine almak ne yapar?

Özet

[id] dinamik segmentler oluşturur, [...slug] tüm alt yolları yakalar ve [[...slug]] bunları isteğe bağlı hâle getirir. (name) içeren rota grupları, URL'yi etkilemeden kodu düzenler ve grup başına düzenler kullanılmasını sağlar. Derleme zamanında önceden oluşturma için generateStaticParams kullanın.

Sıkça Sorulan Sorular

“Dinamik Rotalar ve Rota Grupları” dersi ücretsiz mi?

Evet — “Dinamik Rotalar ve Rota Grupları” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve React Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. React Academy kursu toplamda 4 dersten oluşur.

“Dinamik Rotalar ve Rota Grupları” dersinde ne öğreneceğim?

[slug] dinamik bölümlerini, (folder) ile rota gruplarını ve paralel rotaları oluşturun. React Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

React Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te React Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Dinamik Rotalar ve Rota Grupları” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu React Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her React Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. App Router Dosya Kuralları
  2. Next.js'te Sunucu ve İstemci Bileşenleri
  3. Dinamik Rotalar ve Rota Grupları
  4. App Router'da Metadata API'si ve SEO
← React Academy Sayfasına Dön