Programatik Rotalama
Coddy'nin React Journey'sinin Next.js Temel Esasları bölümünün bir parçası — ders 35 / 47.
<Link>, kullanıcının seçtiği gezinmeyi kapsar. Ancak bazen kararı uygulama verir: bir form gönderildikten sonra, bir giriş başarılı olduktan sonra veya önce yapılması gereken bir işi olan bir buton tıklandıktan sonra.
Bunlar için kod içinden useRouter ile gezinirsiniz:
'use client';
import { useRouter } from 'next/navigation';
export default function CheckoutButton() {
const router = useRouter();
return (
<button onClick={() => router.push('/thanks')}>
Check out
</button>
);
}The router object gives you:
router.push(url): go there, and add it to historyrouter.replace(url): go there, replacing the current entry (no going back to it)router.back(): one step backwardsrouter.refresh(): re-run the server render of the current route
Hatırlanmaya değer iki kural. İlki, useRouter eski next/router'dan değil, next/navigation'dan gelir. İkincisi, bu bir hook'tur, dolayısıyla 'use client' gerektirir.
Düz bir bağlantı yeterli olacağında bağlantı kullanın: bu gerçek bir <a> öğesidir, dolayısıyla klavyelerle, ekran okuyucularıyla ve orta tıklamayla çalışır. Gezinme bir şeyin kendisi değil de bir sonucu olduğunda router.push kullanın.
Görev
KolayAna sayfada hiçbir şey yapmayan bir "Order now" düğmesi var. Yönlendirme yapmasını sağlayın.
components/OrderButton.jsxiçinde,useRouter()ile router'ı alın.- Tıklandığında,
router.pushile kullanıcıyı/menuadresine gönderin.
Düğmenin id="order-btn" niteliğini değiştirmeyin: testler buna tıklar.
Kendin dene
import './globals.css';
export const metadata = {
title: 'My App',
};
export default function RootLayout({ children }) {
return (
<html lang="en">
<body>
{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