Türkçe

Next.js Paralel Rotaları keşfedin: Birden fazla bağımsız bölümle dinamik, esnek sayfa düzenleri oluşturmaya yönelik kapsamlı bir kılavuz. Uygulamayı, faydaları ve en iyi uygulamaları öğrenin.

Next.js Paralel Rotalar: Dinamik Sayfa Düzenleri Oluşturma

Önde gelen bir React çerçevesi olan Next.js, geliştiricilere modern web uygulamaları oluşturmak için güçlü araçlar sağlamak için sürekli gelişiyor. Son sürümlerde tanıtılan en heyecan verici özelliklerden biri Paralel Rotalar'dır. Bu özellik, uygulamanızın yapısı ve kullanıcı deneyimi üzerinde benzersiz esneklik ve kontrol sunarak aynı sayfa düzeninde birden fazla bağımsız bölümü oluşturmanıza olanak tanır.

Paralel Rotalar Nedir?

Geleneksel olarak, Next.js'deki bir rota tek bir sayfa bileşenine karşılık gelir. Farklı bir rotaya gittiğinizde, tüm sayfa yeniden oluşturulur. Paralel Rotalar, her biri kendi bağımsız rota segmenti tarafından yönetilen, aynı düzen içinde aynı anda birden fazla bileşeni oluşturmanıza olanak tanıyarak bu paradigmayı bozar. Sayfanızı, her biri kendi URL'sine ve yaşam döngüsüne sahip, tek bir ekranda bir arada var olan farklı bölümlere ayırmak gibi düşünün.

Bu, daha karmaşık ve dinamik kullanıcı arayüzleri oluşturmak için birçok olanak sunar. Örneğin, paralel rotaları şunları yapmak için kullanabilirsiniz:

Kavramı Anlamak: Yuvalar

Paralel Rotaların arkasındaki temel kavram, "yuvalar" kavramıdır. Bir yuva, belirli bir rota segmentinin oluşturulduğu düzeninizdeki adlandırılmış bir alandır. Bu yuvaları, yuva adının ardından @ sembolünü kullanarak app dizininizde tanımlarsınız. Örneğin, @sidebar "sidebar" adlı bir yuvayı temsil eder.

Daha sonra her yuva bir rota segmentiyle ilişkilendirilebilir. Kullanıcı belirli bir rotaya gittiğinde, Next.js, bu rota segmentiyle ilişkili bileşeni, düzenin karşılık gelen yuvasına oluşturacaktır.

Uygulama: Pratik Bir Örnek

Paralel Rotaların nasıl çalıştığını pratik bir örnekle gösterelim. Bir e-ticaret uygulaması oluşturduğunuzu ve kalıcı bir alışveriş sepeti kenar çubuğu ile birlikte bir ürün detayları sayfası görüntülemek istediğinizi düşünün.

1. Dizin Yapısı

İlk olarak, uygulamamız için dizin yapısını tanımlayalım:

app/
  ürün/
    [id]/
      @sepet/
        page.js  // Alışveriş sepeti bileşeni
      page.js      // Ürün detayları bileşeni
    layout.js   // Ürün düzeni
  layout.js     // Kök düzen

İşte her dosyanın neyi temsil ettiği:

2. Kök Düzeni (app/layout.js)

Kök düzen genellikle başlıklar ve altbilgiler gibi tüm uygulama genelinde paylaşılan öğeleri içerir.

// app/layout.js
export default function KökDüzen({ çocuklar }) {
  return (
    
      
        
E-ticaret Uygulamam
{çocuklar}
© 2024
); }

3. Ürün Düzeni (app/ürün/[id]/layout.js)

Bu, yuvalarımızı tanımladığımız önemli kısımdır. Ana ürün sayfası ve sepet için, sırasıyla page.js ve @sepet/page.js'ye karşılık gelen bileşenleri özellik olarak alırız.

// app/ürün/[id]/layout.js
export default function ÜrünDüzeni({ çocuklar, sepet }) {
  return (
    
{çocuklar}
); }

Bu örnekte, ana ürün içeriğini ve sepet kenar çubuğunu yan yana konumlandırmak için basit bir flexbox düzeni kullanıyoruz. çocuklar özelliği, app/ürün/[id]/page.js'nin oluşturulmuş çıktısını ve sepet özelliği, app/ürün/[id]/@sepet/page.js'nin oluşturulmuş çıktısını içerecektir.

4. Ürün Detayları Sayfası (app/ürün/[id]/page.js)

Bu, id parametresine göre ürün detaylarını görüntüleyen standart bir dinamik rota sayfasıdır.

// app/ürün/[id]/page.js
export default async function ÜrünDetayları({ params }) {
  const { id } = params;
  // Ürün verilerini ID'ye göre getir
  const ürün = await fetchÜrün(id);

  return (
    

Ürün Detayları

{ürün.adı}

{ürün.açıklaması}

Fiyat: ${ürün.fiyatı}

); } async function fetchÜrün(id) { // Gerçek veri getirme mantığınızla değiştirin return new Promise(resolve => setTimeout(() => { resolve({ id, adı: `Ürün ${id}`, açıklaması: `Ürün ${id} açıklaması`, fiyatı: 99.99 }); }, 500)); }

5. Alışveriş Sepeti Bileşeni (app/ürün/[id]/@sepet/page.js)

Bu bileşen, @sepet yuvasında oluşturulacak olan alışveriş sepetini temsil eder.

// app/ürün/[id]/@sepet/page.js
export default function AlışverişSepeti() {
  return (
    

Alışveriş Sepeti

Sepetteki ürünler: 3

); }

Açıklama

Bir kullanıcı /ürün/123 adresine gittiğinde, Next.js şunları yapacaktır:

  1. Kök düzeni (app/layout.js) oluşturun.
  2. Ürün düzenini (app/ürün/[id]/layout.js) oluşturun.
  3. Ürün düzeninde, ürün detayları bileşenini (app/ürün/[id]/page.js) çocuklar özelliğine oluşturun.
  4. Aynı anda, alışveriş sepeti bileşenini (app/ürün/[id]/@sepet/page.js) sepet özelliğine oluşturun.

Sonuç, tek bir düzen içinde oluşturulmuş, kalıcı bir alışveriş sepeti kenar çubuğu olan bir ürün detayları sayfasıdır.

Paralel Rotaları Kullanmanın Faydaları

Dikkat Edilmesi Gerekenler ve En İyi Uygulamalar

Gelişmiş Kullanım: Koşullu Oluşturma ve Dinamik Yuvalar

Paralel rotalar statik yuva tanımlamalarıyla sınırlı değildir. Daha da esnek düzenler oluşturmak için koşullu oluşturma ve dinamik yuvalar da kullanabilirsiniz.

Koşullu Oluşturma

Bir yuvada, kullanıcı rollerine, kimlik doğrulama durumuna veya diğer faktörlere bağlı olarak farklı bileşenleri koşullu olarak oluşturabilirsiniz.

// app/ürün/[id]/layout.js
import { getUserRole } from '../../utils/auth';

export default async function ÜrünDüzeni({ çocuklar, sepet }) {
  const kullanıcıRolü = await getUserRole();

  return (
    
{çocuklar}
); } function YöneticiPaneli() { return (

Yönetici Paneli

Ürün detaylarını buradan yönetin.

); }

Bu örnekte, kullanıcı 'yönetici' rolüne sahipse, @sepet yuvasında alışveriş sepeti yerine bir YöneticiPaneli bileşeni oluşturulacaktır.

Dinamik Yuvalar

Daha az yaygın olsa da, teorik olarak yuva adlarını dinamik olarak oluşturabilirsiniz, ancak bu genellikle karmaşıklık ve potansiyel performans etkileri nedeniyle önerilmez. Önceden tanımlanmış ve iyi anlaşılmış yuvalara bağlı kalmak daha iyidir. Dinamik "yuvalara" ihtiyaç duyulursa, özelliklere ve koşullu oluşturmaya sahip standart React bileşenlerini kullanmak gibi alternatif çözümler düşünün.

Gerçek Dünya Örnekleri ve Kullanım Alanları

Paralel rotaların farklı uygulama türlerinde nasıl kullanılabileceğine dair bazı gerçek dünya örneklerini inceleyelim:

Sonuç

Next.js Paralel Rotalar, dinamik ve esnek web uygulamaları oluşturmak için yeni bir olasılıklar dünyasının kapılarını açan güçlü bir özelliktir. Aynı sayfa düzeninde birden fazla bağımsız bölüm oluşturmanıza izin vererek, paralel rotalar daha ilgi çekici kullanıcı deneyimleri oluşturmanıza, kod yeniden kullanılabilirliğini artırmanıza ve geliştirme sürecini basitleştirmenize olanak tanır. Potansiyel karmaşıklıkları göz önünde bulundurmak ve en iyi uygulamaları izlemek önemlidir, ancak paralel rotalarda ustalaşmak, Next.js geliştirme becerilerinizi önemli ölçüde geliştirebilir ve gerçekten yenilikçi web uygulamaları oluşturmanıza olanak tanır.

Next.js gelişmeye devam ettikçe, Paralel Rotalar, web üzerinde nelerin mümkün olduğunun sınırlarını zorlamak isteyen geliştiriciler için şüphesiz giderek daha önemli bir araç haline gelecektir. Bu kılavuzda özetlenen kavramları deneyin ve Paralel Rotaların modern web uygulamaları oluşturma yaklaşımınızı nasıl değiştirebileceğini keşfedin.