FrontEnd Developer Road Map

React Tutorial 2023 77 – Router 9 – NavLink Component’i İle Active Sayfanın Gösterimi

Merhabalar.

Bu yazımızda Link component’i ile aynı işlemi yapan ama bir farklı özelliği olan NavLink component’i ile link oluşturmaya bakacağız.

Bir menu üzerinde bir sayfaya tıkladığımızda, hangi sayfada olduğumuzu kullanıcıya göstermek isteriz. Bunun için css olarak elementlerin active özelliğine css yazarız.

NavLink, react-router-dom kütüphanesinde bulunan ve navigasyon linklerini yönetmek için kullanılan bir bileşendir. Bu bileşen, Link bileşeni ile benzerdir ancak aktif bir link durumunda otomatik olarak bir aktif CSS sınıfını ekleyerek belirtilen stil değişikliklerini uygular.

NavLink bileşeni, genellikle menü linkleri, gezinme çubukları veya diğer navigasyon araçlarında kullanılır. Aktif sayfa için özel bir stil veya sınıf uygulamak istediğinizde NavLink kullanmak oldukça kullanışlıdır.

Temel Kullanım

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

function Navigation() {
  return (
    <nav>
      <ul>
        <li>
          <NavLink to="/" exact activeClassName="active-link">
            Ana Sayfa
          </NavLink>
        </li>
        <li>
          <NavLink to="/about" activeClassName="active-link">
            Hakkında
          </NavLink>
        </li>
      </ul>
    </nav>
  );
}

Yukarıdaki örnekte, NavLink bileşeni to prop’u ile belirtilen URL’ye yönlendirme yapar. exact prop’u, yalnızca tam eşleşme durumunda stil uygulamasını sağlar. activeClassName prop’u ise aktif sayfa durumunda uygulanacak CSS sınıfını belirtir. Bu sayede, aktif sayfa durumunda stil değişiklikleri otomatik olarak uygulanır.

Örnek bir CSS stil:

.active {
  color: red;
  font-weight: bold;
}

Bu stil, active-link sınıfı ile etiketlenmiş NavLink bileşenleri yalnızca aktif olduğunda geçerli olacaktır.

Kendi projemizde kodlarımızı güncelleyelim.

Header.jsx

import React from 'react';
import { NavLink } from 'react-router-dom';
import "../../Assets/Css/Header.css";

const Header = () => {
    return (
        <div className="header">
            <nav className="menu">
                <NavLink to="/" activeClassName="active-link">Home</NavLink>
                <NavLink to="/about" activeClassName="active-link">About</NavLink>
                <NavLink to="/contact" activeClassName="active-link">Contact</NavLink>
                <NavLink to="/product" activeClassName="active-link">Product</NavLink>
            </nav>
        </div>
    )
}

export default Header

Bir önceki yazılarımızda burada Link olarak kullandığımız alanları NavLink olarak güncelliyoruz. NavLink’in activeClassName özelliğine “active-link” değerini veriyoruz. Bunu link olan hepsine uyguluyoruz.

Böylece o NavLink’e tıklandığında, bizim için class=”active” isminde className ekliyor. Biz bu oluşacağını bildiğimiz active class’ı için css kodlarımızı yazarsak aktif sayfanın linki için istediğimiz işleri yaptırabiliriz.

Bunun için Header.css dosyamız a.active class’ına ilgili CSS kodlarımızı ekleyelim.

Header.css

.header {
    display: flex;
    justify-content: center;
    align-items: center;
    background-color: #132d46;
    padding: 20px 0;

}

.menu {
    display: flex;
    gap: 40px;
}

.menu a {
    font-size: 20px;
    color: rgb(195, 203, 209);
    text-decoration: none;
}

.menu a:hover {
    color: rgb(197, 177, 88);
}

a.active {
    color: rgb(197, 177, 88);
}

Uygulama Test

Bu yazımızda bu kadardı.

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.

Share
Published by
Murat Bilginer

Recent Posts

Kedimiz Oly & FIP Süreci 9 – 1 Haftalık GS İğnesi Serüveni – Oly İyileşiyor mu?

Selamlar, bu yazımda Oly'nin 1 hafta boyunca olduğu GS iğnesi, yaşanan değişimleri anlatmaya çalışacağım. PCR…

2 gün ago

Kedimiz Oly & FIP Süreci 8 – Yeniden Hayvan Hastanesi – Sonuç Kontrolü ve Sonrası…

Selamlar, bu yazımda Hemogram ve Biyokimya sonuçlarımızı göstermek için İÜCHH'ne tekrar gidişimizi ve sonrasını anlatacağım.…

2 gün ago

Kedimiz Oly & FIP Süreci 7 – GS İğnesine Başlama Kararımız ve Oly’de Dikkat Ettiklerimiz

Selamlar, bu yazımda GS iğnesine başlama kararımızı ve Oly’de bu süreçte nelere dikkat ediyor, neler…

2 gün ago

Kedimiz Oly & FIP Süreci 6 – İstanbul Üniversitesi Cerrahpaşa Hayvan Hastanesi Serüveni ve Sonrası

Selamlar, bu yazımda İÜCHH'deki tedavi sürecimiz ve sonrasında yaşananlardan bahsetmeye çalışacağım. 20.06.2025 Cuma günü saat…

3 gün ago

Kedimiz Oly & FIP Süreci 5 – Teşhisten Önce Biz… Veterinerimize Güvenebilir Miydik?

Eve Dönüş ve İlk Şüpheler 18 Haziran Perşembe saat 23 sularında İstanbul’daki evimize giriş yaptık.…

3 gün ago

Kedimiz Oly & FIP Süreci 4 – Antalya’ya Yolculuk – Bir Şeyler Ters Gidiyor… & İstanbul’a Geri Dönüş

9 Haziran Pazartesi günü Aydın’daki sürecimiz bitti ve Antalya yolculuğumuz başladı. Saat 11 gibi yola…

4 gün ago