Önemli: Diğer yazılarımla direkt bağlantılı bir yazıdır. İlk olarak bu yazıdan okumaya başladıysanız, eğitim serisine kısaca bir göz atmanızı tavsiye ederim.
Merhabalar.
Bu yazımda useNavigate Hook’unun kullanımına bakacağız.
useNavigate, react-router-dom kütüphanesindeki React hook’larından biridir ve programatik olarak sayfa yönlendirmeleri yapmak için kullanılır. Bu hook, bir işlevi döndürür ve bu işlev, belirli bir URL’ye yönlendirme yapmanızı sağlar.
Önceki sürümlerde kullanılan useHistory hook’u ile benzer bir işlevselliğe sahiptir, ancak useNavigate v6 sürümü ile birlikte gelmiş ve daha basit bir API sunarak sayfa yönlendirmelerini yönetmeyi amaçlamıştır.
useNavigate‘in temel kullanımı:import { useNavigate } from 'react-router-dom';
function MyComponent() {
const navigate = useNavigate();
const redirectToAboutPage = () => {
navigate('/about');
};
return (
<div>
<p>Component içeriği</p>
<button onClick={redirectToAboutPage}>Hakkında Sayfasına Git</button>
</div>
);
}
Yukarıdaki örnekte, useNavigate hook’u kullanılarak navigate adında bir işlev elde edilir. Bu işlev, belirli bir URL’ye yönlendirmek için kullanılır. redirectToAboutPage işlevi, butona tıklandığında '/about' sayfasına yönlendirme yapar.
useNavigate kullanmak, özellikle fonksiyonel bileşenlerde programatik yönlendirmeler yapmak istediğinizde oldukça kullanışlıdır. Bu sayede, kullanıcı etkileşimlerine veya belirli olaylara bağlı olarak sayfa değişiklikleri gerçekleştirebilirsiniz.
useNavigate jsx elementlerinin her biri için tıklanma ve sayfa yönlendirme özelliği kazandırır.
Kendi projemizde HomePage’e, ProductPage’e ve ContactPage’e yönlendirecek iki buton ekleyeceğim.
import React from 'react';
import { useNavigate } from 'react-router-dom';
const HomePage = () => {
const navigate = useNavigate();
const productLink = () => {
navigate('/product');
}
const contactLink = () => {
navigate('/contact');
}
return (
<>
<div className='page'>
<p>HomePage</p> <br/> <br/>
<div className="btn">
<button onClick={productLink}>Go to Product Page</button>
<button onClick={contactLink}>Go to About Page </button>
</div>
</div>
</>
)
}
export default HomePage .App {
text-align: center;
}
.App-logo {
height: 40vmin;
pointer-events: none;
}
@media (prefers-reduced-motion: no-preference) {
.App-logo {
animation: App-logo-spin infinite 20s linear;
}
}
.App-header {
background-color: #282c34;
min-height: 100vh;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
font-size: calc(10px + 2vmin);
color: white;
}
.App-link {
color: #61dafb;
}
@keyframes App-logo-spin {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
.page {
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
row-gap: 0px;
height: 95vh;
font-size: 100px;
background-color: #282c34;
color: #61dafb;
}
.btn{
display: flex;
justify-content: center;
align-items: center;
flex-direction: row;
gap: 10px;
}
button{
background-color: #4c6369;
color: #61dafb;
border: none;
border-radius: 5px;
padding: 10px;
font-size: 20px;
cursor: pointer;
} Şimdi adım adım kodlara bakalım.
react-router-dom kütüphanesinden useNavigate’i import ediyoruz.
import { useNavigate } from 'react-router-dom'; const navigate = useNavigate(); <button onClick={productLink}>Go to Product Page</button>
<button onClick={contactLink}>Go to About Page </button> const productLink = () => {
navigate('/product');
} navigate fonksiyonu, parametre olarak verilen /product URL’sine yönlendirme yapar. Yani, productLink fonksiyonu çağrıldığında, sayfa /product URL’sine yönlendirilecektir.
Bu tür bir programatik yönlendirme, kullanıcı bir butona tıkladığında veya belirli bir olay gerçekleştiğinde sayfa değişiklikleri yapmak istediğinizde oldukça kullanışlıdır. Bu şekilde, React uygulamanızdaki gezinme işlemlerini kullanıcı etkileşimleri veya uygulama mantığına bağlı olarak yönetebilirsiniz.
useNavigate hook’u sayesinde url adresleri üzerinde parametreler gönderebiliriz.
Farklı bir kodlama üzerinden buna bakabiliriz.
import { useNavigate, useParams } from 'react-router-dom';
function ProductDetail() {
const navigate = useNavigate();
const { productId } = useParams();
const navigateToProduct = (productId) => {
navigate(`/product/${productId}`);
};
return (
<div>
<h2>Ürün Detay Sayfası</h2>
<p>Ürün ID: {productId}</p>
<button onClick={() => navigateToProduct(123)}>Belirli bir Ürüne Git</button>
</div>
);
}
export default ProductDetail; Bu örnekte, ProductDetail bileşeni, useParams hook’u ile URL’den dinamik olarak alınan productId parametresini kullanır. Ardından, navigateToProduct fonksiyonu, parametre olarak alınan bir productId değeriyle birlikte useNavigate hook’u kullanılarak belirli bir ürün sayfasına yönlendirme yapar.
Bu şekilde, useParams ve useNavigate hook’larını birlikte kullanarak dinamik URL parametreleri ile sayfa yönlendirmeleri gerçekleştirebilir ve uygulamanızdaki gezinme işlemlerini dinamik hale getirebilirsiniz.
Bir sonraki yazımda görüşmek üzere.
Hüzünlü bir selam. Bu yazı dizisine başlarken büyük umutlarım vardı. Oly’nin FIP durumunu erken teşhis…
Selamlar, bu yazımda sizlere Oly’nin çıkan PCR sonucu ve geçtiğimiz bir haftada hastalığın genel seyrinden…
Selamlar, bu yazımda Oly'nin 1 hafta boyunca olduğu GS iğnesi, yaşanan değişimleri anlatmaya çalışacağım. PCR…
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.…
Selamlar, bu yazımda GS iğnesine başlama kararımızı ve Oly’de bu süreçte nelere dikkat ediyor, neler…
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…