Merhabalar.

Bu yazımda Route işlemlerimizi yaparken kullanacağımız kütüphaneden sizlere bahsetmeye çalışacağım.

Aynı zamanda Router konusunu işlerken geliştireceğimiz uygulamayı oluşturacak ve react-router-dom kurulumunu yapıp bir sonraki eğitim yazımıza geçeceğiz.

Proje klasörüme reacte-router ismini verdim ve React kurulumumu gerçekleştirdim.

İlk olarak terminalde aşağıdaki komutu çalıştıralım ve kütüphanemizi projemize dahil edelim.

npm i react-router-dom

Şimdi kısaca bu kütüphanemiz ne yapar ne işe yarar bunlara bakalım. Aşağıda kod parçaları paylaşacağım şimdilik kodlara takılmayınız.

React-Router-Dom Nedir?

React uygulamalarında sayfa yönlendirmeleri ve gezinme işlemlerini kolaylaştırmak için kullanılan önemli bir kütüphane olan react-router-dom, web uygulamalarının kullanıcı deneyimini zenginleştirmek ve SPA (Tek Sayfa Uygulaması) mimarisini daha etkili bir şekilde kullanmak için tasarlanmıştır.

Bu kütüphane, React tabanlı projelerde farklı sayfalar arasında geçiş yapmayı, URL’yi takip etmeyi ve uygulama durumunu güncellemeyi sağlayan bir dizi araç ve bileşen içerir.

Temel Kavramlar

react-router-dom kütüphanesi, temel olarak üç ana bileşeni içerir: BrowserRouter, Route, ve Link.

BrowserRouter: Uygulamanın genelindeki sayfa yönlendirmelerini sağlayan bir bileşendir. Bu bileşen, tarayıcıdaki URL’yi takip eder ve uygun Route bileşenini render eder.

Route: Belirli bir URL yoluna eşleşen bir bileşeni render eder. Bu, kullanıcı belirli bir URL’yi ziyaret ettiğinde hangi bileşenin görüntüleneceğini belirlemek için kullanılır.

Link: Sayfa içindeki bağlantıları temsil eden bir bileşendir. Kullanıcılar bu bağlantılara tıkladığında, belirli bir URL’ye geçiş yaparlar.

BrowserRouter Kullanımı

İlk olarak, BrowserRouter bileşenini projenize eklemelisiniz. Bu, tarayıcıdaki URL’yi dinler ve uygun Route‘ları render etmek için kullanılır. Genellikle uygulamanızın ana bileşeni içinde kullanılır.

import { BrowserRouter as Router } from 'react-router-dom';

function App() {
  return (
    <Router>
      {/* Uygulama içeriği buraya gelecek */}
    </Router>
  );
}

Route Bileşeni ve Yol Eşleştirmesi

Route bileşeni, belirli bir URL yolu ile eşleşen bir bileşeni render etmek için kullanılır. Yol eşleştirmesi için path özelliği kullanılır.

import { Route } from 'react-router-dom';

function Home() {
  return <h2>Ana Sayfa</h2>;
}

function About() {
  return <h2>Hakkında</h2>;
}

function App() {
  return (
    <Router>
      <Route path="/" exact component={Home} />
      <Route path="/about" component={About} />
    </Router>
  );
}

Yukarıdaki örnekte, ana sayfa için / ve hakkında sayfası için /about URL yolları tanımlanmıştır.

Link Bileşeni

Sayfalar arasında geçiş yapmak için Link bileşeni kullanılır. Bu bileşen, kullanıcının tıkladığı bağlantıya göre URL’yi değiştirir.

import { Link } from 'react-router-dom';

function Navigation() {
  return (
    <nav>
      <ul>
        <li>
          <Link to="/">Ana Sayfa</Link>
        </li>
        <li>
          <Link to="/about">Hakkında</Link>
        </li>
      </ul>
    </nav>
  );
}

Yukarıdaki örnekte, Link bileşeni, kullanıcının “Ana Sayfa” veya “Hakkında” bağlantılarına tıklaması durumunda ilgili sayfaya yönlendirmeyi sağlar.

Geçiş Parametreleri

react-router-dom ayrıca URL’de geçiş parametreleri kullanma yeteneği de sağlar. Bu, dinamik içerik oluşturmak için kullanışlıdır.

function UserProfile({ match }) {
  return <h2>Kullanıcı Profili: {match.params.username}</h2>;
}

function App() {
  return (
    <Router>
      <Route path="/profile/:username" component={UserProfile} />
    </Router>
  );
}

Yukarıdaki örnekte, /profile/:username URL yolu, kullanıcının adını içeren dinamik bir parametreye izin verir.

Programatik Yönlendirmeler

react-router-dom ayrıca programatik olarak sayfa yönlendirmeleri yapma olanağı da sağlar. Bu genellikle bir fonksiyon içinde useHistory veya useNavigate gibi kancalar kullanılarak gerçekleştirilir.

import { useHistory } from 'react-router-dom';

function MyComponent() {
  const history = useHistory();

  function redirectToAboutPage() {
    history.push('/about');
  }

  return (
    <div>
      <p>Component içeriği</p>
      <button onClick={redirectToAboutPage}>Hakkında Sayfasına Git</button>
    </div>
  );
}

Yukarıdaki örnekte, useHistory kancası kullanılarak bir butona tıklama durumunda programatik olarak '/about' sayfasına yönlendirme yapılmaktadır.

react-router-dom kütüphanesi, React tabanlı uygulamalarda gezinme, sayfa yönlendirmeleri ve URL yönetimi konularında büyük bir kolaylık sağlar. Bu kütüphane, SPA mimarisini daha etkili bir şekilde kullanmanıza olanak tanırken, aynı zamanda kullanıcı dostu ve dinamik web uygulamaları geliştirmenize olanak sağlayan güçlü bir araç setine sahiptir.

Bir sonraki yazımda görüşmek üzere.


Murat Bilginer
21 Şubat 1992'de doğdum. Endüstri Mühendisi olarak lisansımı 2016 yılında tamamladım. Industryolog Akademi - NGenius oluşumlarının kurucusuyum. Şu anda kendi şirketim Brainy Tech ile Web ve Mobil Geliştirme, AWS, Google Cloud Platform Sistemleri için DevOps, Big Data Analiz ve Görselleştirme hizmetleri sunmakta ve Online Eğitimler vermekteyiz.