Merhabalar.

Bu yazımda Route’lar ile alakalı kod geliştirerek öğrenme sürecimize başlıyoruz.

Öncelikle projemde src içinde Pages isminde bir klasör oluşturuyorum.

Sonrasında bu klasör içine Home – About – Contact – Product şeklinde yeni klasörler açıp bunların içine kendi isimleriyle jsx dosyalarımı oluşturuyorum.

Her bir sayfama aşağıdaki gibi ilk kodlarını yazıyoruz.

import React from 'react'

const HomePage = () => {
  return (
    <div className="page">HomePage</div>
  )
}

export default HomePage

import React from 'react'

const ProductPage = () => {
  return (
    <div className="page">ProductPage</div>
  )
}

export default ProductPage

import React from 'react'

const AboutPage = () => {
  return (
    <div className="page">AboutPage</div>
  )
}

export default AboutPage

import React from 'react'

const ContactPage = () => {
  return (
    <div className="page">ContactPage</div>
  )
}

export default ContactPage

Şimdi amacım şu

localhost:3000 de iken HomePage

localhost:3000/product ProductPage

localhost:3000/about AboutPage

localhost:3000/contact ContactPage açılsın.

Bunu yapabilmek için App.js dosyamıza gidiyoruz.

Öncelikle kodların tamamını verip adım adım anlatayım istiyorum.

import './App.css';
import { RouterProvider, createBrowserRouter } from 'react-router-dom';
import HomePage from './Pages/Home/HomePage';
import AboutPage from './Pages/About/AboutPage';
import ContactPage from './Pages/Contact/ContactPage';
import ProductPage from './Pages/Product/ProductPage';

const router = createBrowserRouter([

  {path: '/', element: <HomePage />},
  {path: '/about', element: <AboutPage />},
  {path: '/contact', element: <ContactPage />},
  {path: '/product', element: <ProductPage />},

]);


function App() {
  return (
    <>
      <RouterProvider router={router} >
        {router}
      </RouterProvider>
    </>
  );
}

export default App;


Import İşlemleri

import { RouterProvider, createBrowserRouter } from 'react-router-dom';

RouterProvider ve createBrowserRouter, react-router-dom kütüphanesinde kullanılan ve React uygulamalarında yönlendirme (routing) işlemlerini kolaylaştırmak için sağlanan bazı yardımcı araçlardır.

RouterProvider ve createBrowserRouter fonksiyonları, React Router’ın ana bileşenleridir.

  • RouterProvider: Bu, React Router’ın ana bileşenidir ve uygulamanın tüm rotalarını yönetir. Bu bileşen, uygulamanın hangi bileşenin görüntüleneceğini belirler.
  • createBrowserRouter: Bu fonksiyon, bir tarayıcı tabanlı router oluşturur. Bu, kullanıcının tarayıcıda sayfa geçişlerini yönetir.

Bu iki bileşen, birlikte kullanılarak, bir React uygulamasında sayfa geçişlerini yönetmek için kullanılır. Örneğin, bir kullanıcı bir uygulamadaki bir bağlantıya tıkladığında, createBrowserRouter bu eylemi algılar ve ilgili bileşeni görüntüler.

Router Nesnesi Oluştur

Sonrasında route tanımlamalarımızı yapacak nesnemi oluşturuyorum. Bunu oluştururken createBrowserRoute fonksiyonunu kullanacağım. Bu kendisine bir dizi içinde obje tanımlamaları alır.

const router = createBrowserRouter([

  {path: '/', element: <HomePage />},
  {path: '/about', element: <AboutPage />},
  {path: '/contact', element: <ContactPage />},
  {path: '/product', element: <ProductPage />},

]);

Yukarıdaki kodlarla aynı işlevi yapan ve v6 ile gelen aşağıdaki kod dizimini de kullanabilirsiniz.

const router = createBrowserRouter([

  {path: '/', action: () => <HomePage />},
  {path: '/about', action: () => <AboutPage />},
  {path: '/contact', action: () => <ContactPage />},
  {path: '/product', action: () => <ProductPage />},

]);

Dizi içine her bir obje path ve element isimli iki değişken alır. path, url’de görünecek yolu belirlediğimiz yerdir. element ise bu url ile istek gelirse, hangi sayfanın render edileceğini söylediğimiz yerdir.

Yani path değeri /about olan bir url gelirse sayfamız AboutPage olarak açılacaktır.

RouteProvider Context’ini Oluştur

Biz bütün component ve sayfa tanımlamalarımı App.js içinde yaptığımız için sonra olarak App’i RouteProvider ile sarmalayacağız ve kendisine oluşturduğumuz router objesini router bilgisi olarak vereceğiz.

Aşağıda gördüğünüz gibi.

<>
      <RouterProvider router={router} >
        {router}
      </RouterProvider>
</>

App.css içine aşağıdaki verdiğim kodları da ekleyiniz.

.page {
  display: flex;
  justify-content: center;
  align-items: center;
  height: 100vh;
  font-size: 145px;
  background-color: #282c34;
  color: #61dafb;
}

Uygulama Test

Şimdi browserda url’e oluşturduğunuz pathleri yazıp deneyebilirsiniz.

localhost:3000 bu şekilde bırakıldığında anlamı localhost:3000/ şeklindedir. Yani path olarak / ile neyi tanımladıysak o sayfa açılır.

Böylece ilk route işlemlerimizi yapmış olduk.

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.