Next.js İle Uygulama Nasıl Geliştirilir ?

Next.js İle Uygulama Nasıl Geliştirilir ?
By Codefacture

Next.js Nedir?

Next.js, React uygulamalarını geliştirmek için tasarlanmış bir frameworktür. Sunucu tarafında render etme (İngilizcesi: Server-Side Rendering veya SSR), statik site oluşturma (Static Site Generation veya SSG) ve çoklu dış veri entegrasyonu gibi özellikleri destekler.

Avantajları:

  • SEO Dostu: SSR ve SSG ile tarama botlarına optimize edilmiş içerik sunar.

  • Performans: Statik dosyalar ve optimize edilen kod yükleme sayesinde hızlı yüklenir.

  • Esneklik: API rota oluşturma ve çoklu veri kaynağı desteğiyle esnek bir yapı sunar.

Next.js ile Proje Başlatma

Next.js projesi oluşturmak için aşağıdaki adımları takip edebilirsiniz.

Gereksinimler

  • Node.js: Minimum 16.0 versiyonu kurulu olmalıdır.

  • Bir Paket Yöneticisi: NPM veya Yarn kullanabilirsiniz.

Kurulum

  1. Yeni bir Next.js projesi başlatmak için terminalde aşağıdaki komutu çalıştırın:

    npx create-next-app@latest my-next-app
  2. Komutları takip ederek proje adını ve diğer ayarları belirleyin.

  3. Proje dizinine gidin ve geliştirme sunucusunu başlatın:

    cd my-next-app
    npm run dev

    Varsayılan olarak uygulama http://localhost:3000 adresinde çalışır.

Next.js Temel Yapısı

Dosya ve Klasör Yapısı

Next.js projelerinde şu önemli klasörler bulunur:

  • pages/: Uygulamanın sayfalarını içerir.

    • index.js: Ana sayfa.

    • [slug].js: Dinamik rotalar.

  • public/: Statik dosyaları (resimler, dosyalar) barındırır.

  • styles/: CSS dosyalarını barındırır.

Sayfa Oluşturma

Yeni bir sayfa oluşturmak için pages klasörü altında bir dosya oluşturun. Örneğin:

Örneğin:

// pages/about.js
export default function About() {
  return (
    <div>
      <h1>Hakkımızda</h1>
      <p>Bu sayfa hakkımızda bilgi verir.</p>
    </div>
  );
}

Dinamik Rotalar

Dinamik rotalar Next.js uygulamalarında çok kullanılır. Örneğin:

// pages/blog/[id].js
import { useRouter } from 'next/router';

export default function BlogPost() {
  const router = useRouter();
  const { id } = router.query;

  return (
    <div>
      <h1>Blog Yazısı: {id}</h1>
    </div>
  );
}

Veriyi Almak: getStaticProps ve getServerSideProps

Next.js, veri alma işlemleri için iki ana metod sunar:

getStaticProps

Statik sayfalar oluştururken kullanılır:

export async function getStaticProps() {
  const res = await fetch('https://jsonplaceholder.typicode.com/posts');
  const posts = await res.json();

  return {
    props: {
      posts,
    },
  };
}

getServerSideProps

Her istek öncesi sunucuda çalışır:

export async function getServerSideProps() {
  const res = await fetch('https://api.example.com/data');
  const data = await res.json();

  return {
    props: {
      data,
    },
  };
}

Next.js ile SEO Optimizasyonu

Head Etiketi

Next.js, next/head bileşenini kullanarak meta etiketleri eklemeye olanak tanır:

import Head from 'next/head';

export default function Home() {
  return (
    <>
      <Head>
        <title>Anasayfa - My Next.js App</title>
        <meta name="description" content="Next.js ile geliştirilmiş bir uygulama." />
      </Head>
      <h1>Merhaba Dünya!</h1>
    </>
  );
}

Sitemap ve Robots.txt

SEO için sitemap ve robots.txt dosyalarını oluşturun:

  • Sitemap: next-sitemap paketini kullanabilirsiniz.

  • robots.txt: public/ klasörüne ekleyin.

Resim Optimizasyonu

next/image bileşeni ile resimler otomatik optimize edilir:

import Image from 'next/image';

<Image src="/example.jpg" alt="Example" width={500} height={500} />

Dağıtım (Deployment)

Next.js uygulamaları, Vercel veya herhangi bir hosting platformunda kolayca yayınlanabilir.

Vercel

  1. Vercel hesabı oluşturun.

  2. Projenizi GitHub ile bağlayın.

  3. Vercel ayarlarından projeyi yayınlayın.

Diğer Hosting Seçenekleri

  • Netlify

  • Heroku

  • AWS

  • Google Cloud

İletişim Formu

Bu form üzerinden tarafımıza ulaşabilirsiniz

    Codefacture

    Kurumsal

  • Hakkımızda
  • Hizmetlerimiz
  • Yazılımcı Kirala
  • CRM & ERP Yazılım
  • İnteraktif Uygulamalar

    Hizmetlerimiz

  • React
  • Next.js
  • Tailwind CSS
  • Node.js
  • Javascript

    İletişim

  • Telefon
  • E-Mail
  • WhatsApp
  • İletişim Formu
  • Toplantı Talebi
© Codefacture 2024 Tüm Hakları Saklıdır

Ortalama Yanıt Süresi: 15 Dakika