Etkin Bağlantı (Active Link)
Coddy'nin React Journey'sinin Next.js Temel Esasları bölümünün bir parçası. Ders 34 / 47.
Gezinme çubuğu olan her site, o anda bulunduğunuz bağlantıyı vurgular. Bunu yapmak için bir bileşenin, sunucunun daha sonradan söyleyemeyeceği bir şeyi bilmesi gerekir: şu anda ekranda hangi URL'nin olduğu.
next/navigation bunu size sağlar:
'use client';
import { usePathname } from 'next/navigation';
export default function Nav() {
const pathname = usePathname();
// /about üzerinde, pathname '/about' dizesidir
}Bu bir hook olduğundan, zaten bildiğin kurallar geçerlidir: yalnızca dosyası 'use client' ile başlayan bir bileşende çalışır. Bir nav bar’ın genellikle aksi hâlde sunucu tarafından oluşturulan bir uygulamadaki birkaç istemci bileşeninden biri olmasının tüm nedeni budur: her rota değişikliğinde yeniden çalışması gerekir.
Oradan sonrası düz bir karşılaştırmadır:
<Link
href="/menu"
className={pathname === '/menu' ? 'nav-link active' : 'nav-link'}
>
Menu
</Link>Nav'ın nerede bulunduğuna dikkat et: layout içinde. Bir kez oluşturulur ve her gezinmede varlığını sürdürür; dolayısıyla onu yeniden oluşturan şey bir yeniden bağlama değil, pathname değerinin değişmesidir.
Görev
KolayGezinme çubuğu çalışıyor, ancak hangi sayfada olduğunuzu gösteren hiçbir şey yok. Bunu components/Nav.jsx içinde düzeltin.
usePathname()işlevini çağırın ve sonucupathnameiçinde saklayın."nav-link active"değerihrefile eşleştiğinde her bağlantıyapathnameclassName'ini, aksi halde düz"nav-link"className'ini verin.
Home bağlantısı / yolunu, Menu bağlantısı ise /menu yolunu gösterir.
Kendin dene
import './globals.css';
import Nav from '../components/Nav.jsx';
export const metadata = {
title: 'Coddy Eats',
};
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>
<Nav />
{children}
</body>
</html>
);
}Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.
Next.js Temel Esasları bölümündeki tüm dersler
4Sunucu ve İstemci
İki Çeşit BileşenHatayı Okuma'use client' Satırıİstemci Parçalarını Küçük Tutmaİstemci İçinde SunucuÖzet: Sunucu ve İstemci7İstemci Yönlendirmesi
Etkin Bağlantı (Active Link)Programatik RotalamaURL ile FiltrelemeRota İşleyicileri (Route Handlers)Özet: Yönlendirme