Ö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.
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…
Eve Dönüş ve İlk Şüpheler 18 Haziran Perşembe saat 23 sularında İstanbul’daki evimize giriş yaptık.…
9 Haziran Pazartesi günü Aydın’daki sürecimiz bitti ve Antalya yolculuğumuz başladı. Saat 11 gibi yola…