Blog'a Dön

Buğra Şıkel

Next.js – Routing İşlemleri

Bu içerik bir seri içeriğin ilk yazısıdır. Next.js öğrenme serüvenimi okurlarımla birlikte ilerletmek için bu şekilde bir yol izlemeye karar verdim. Öncelikle Next.js nedir sorusunun cevabını vererek yazımıza başlayalım.

Next.js, JavaScript için açık kaynak bir React framework’üdür ve uygulamanız için otomatik olarak çoğu yapılandırma seçeneğini sağlar. Bu framework, önemli bir özellik olan client-side routing (müşteri tarafından yönlendirme) gibi bir dizi özellik sunar. Bu makalede, Next.js’de client-side routing konusunda size bir giriş sunacağız.

Statik Routing işlemleri

Next.js’de client-side routing, önceden tanımlanmış yolların, sayfaların ve URL’lere tekabül eden bileşenlerin birleşiminden oluşur. Client-side routing, uygulamanın kullanıcı etkileşimlerini hızlandırabilir ve sayfa yenilemelerini engelleyerek kullanıcı deneyimini artırır.

Next.js’de client-side routing’i kullanmak için, uygulamanızın pages dizininde bir dizi dosya oluşturmanız gerekir. Bu dosyalar, uygulamanızın navigasyonunda kullanılacak sayfalarınızı temsil eder. Örneğin, pages/index.js dosyası, ana sayfanızı temsil eder.

Bu sayfaların her biri, URL’ye göre erişilebilir hale getirmek için export default ile bir bileşen döndürmelidir. Örneğin, aşağıdaki örnek, /about URL’sine erişilebilir olan bir AboutPage bileşeni döndürür:

export default function AboutPage() {
  return (
    <div>
      <h1>About Page</h1>
      <p>This is the about page.</p>
    </div>
  )
}

Next.js, Link bileşenini kullanarak sayfalar arasında geçiş yapmanızı sağlar. Bu bileşen, sayfalar arasındaki navigasyonun daha hızlı ve sorunsuz olmasını sağlar. Aşağıdaki örnek, Link bileşeni kullanarak /about sayfasına yönlendiren bir bağlantı içerir:

import Link from 'next/link'

function Home() {
  return (
    <div>
      <h1>Home Page</h1>
      <Link href="/about">
        <a>About</a>
      </Link>
    </div>
  )
}

export default Home

Dinamik Routing işlemleri

Dinamik routing, Next.js’in en önemli özelliklerinden biridir ve birçok web uygulaması için oldukça kullanışlıdır.

Next.js’de dinamik routing işlemleri için, pages dizininize [param].js adında bir dosya eklemeniz gerekmektedir. Bu dosya adı, URL’deki parametrelerin adını belirler. Örneğin, pages/post/[id].js dosyası, /post/1 veya /post/2 gibi URL’lerindeki id parametresine karşılık gelir.

Dinamik route dosyasında, bir bileşen oluşturarak, parametrelerin sayfadaki bileşenlere nasıl geçirileceğini belirleyebilirsiniz. Aşağıdaki örnekte, id parametresi, sayfada gösterilecek blog gönderisini belirleyen Post bileşenine aktarılır:

import { useRouter } from 'next/router'

function Post() {
  const router = useRouter()
  const { id } = router.query

  return (
    <div>
      <h1>Post {id}</h1>
      <p>This is the blog post content.</p>
    </div>
  )
}

export default Post

Bu örnekte, useRouter kancası, Next.js’in Router özelliğini kullanarak URL’deki parametrelere erişmenizi sağlar. Ardından, id parametresi, bileşen içinde kullanılmak üzere router.query nesnesinden alınır.

Dinamik routing işlemlerinde ayrıca, Link bileşeni içindeki URL’lerin parametrelerle birleştirilmesi gereklidir. Aşağıdaki örnek, Post bileşenine /post/1 gibi bir URL içinde id parametresini ileterek erişir:

import Link from 'next/link'

function Home() {
  return (
    <div>
      <h1>Home Page</h1>
      <Link href="/post/[id]" as="/post/1">
        <a>Post 1</a>
      </Link>
    </div>
  )
}

export default Home

Bu örnekte, as özelliği, bileşenin eriştiği URL’nin gerçek URL’sini belirler. Yani /post/1 URL’si, bileşen içinde id parametresine karşılık gelir. Link bileşeni, sayfa yenilemeden URL’yi değiştirerek, dinamik routing işlemini gerçekleştirir.

Next.js, hem dinamik hem de statik routing işlemlerini destekleyerek, web uygulamalarınızda daha fazla esneklik ve performans sağlar. Statik routing, önceden belirlenmiş sayfaların yönlendirilmesi için idealdir. Dinamik routing ise URL’lerin parametrelerle dinamik olarak değiştirilmesine olanak sağlar. useRouter ve Link bileşenleri, routing işlemlerini oldukça kolaylaştırır. Bu özellikleri kullanarak, Next.js ile daha dinamik ve interaktif web uygulamaları oluşturabilirsiniz.

Bu bir seri yazı olacak, devamı için tıklayabilirsiniz.

Bunları da beğenebilirsiniz

Istio Canary Dağıtımlarında HTTP 502 Hatalarını Sıfırlamak: Envoy Draining ve Pod Lifecycle Vaka Çalışması

Saniyede 8.500 istek alan bir ödeme geçidinde (Payment Gateway), Kubernetes pod kapanma sekansları ve Istio Envoy draining optimizasyonlarıyla HTTP 502 hatalarını nasıl sıfırladığımızı inceliyoruz.

Devamını Oku

Javascript ile Panoya Kopyalama Yapımı

Merhabalar, bu yazımızda html, css, javascript kullanarak panoya kopyalama (copy clipboard) yapacağız. Kodlamamızı bitirdikten sonra ulaşacağımız sonuç aşağıdaki gibi olacak. İlk olarak kopyalanacak metnin bulunacağı…

Devamını Oku

PostgreSQL JSONB İş Yüklerinde GIN İndeks Darboğazları: pending_list_limit Parametresiyle Kilit Çekişmelerini Minimize Etmek

PostgreSQL GIN indekslerinde fastupdate mekanizmasının yarattığı 4MB kilit darboğazını, production metrikleri ve trade-off analizleriyle inceliyoruz.

Devamını Oku