Menu
CoddyTech

Routing Terprogram

Termasuk bagian Dasar-Dasar Next.js dalam perjalanan React di Coddy. Pelajaran 35 dari 47.

<Link> menangani navigasi yang dipilih pengguna. Namun, terkadang aplikasi yang menentukan: setelah formulir dikirim, setelah login berhasil, atau setelah tombol diklik dan ada pekerjaan yang harus dilakukan terlebih dahulu.

Untuk hal tersebut, kamu melakukan navigasi dari kode dengan useRouter:

'use client';

import { useRouter } from 'next/navigation';

export default function CheckoutButton() {
    const router = useRouter();

    return (
        <button onClick={() => router.push('/thanks')}>
            Check out
        </button>
    );
}

object router memberimu:

  • router.push(url): buka halaman itu, lalu tambahkan ke riwayat
  • router.replace(url): buka halaman itu dengan mengganti entri saat ini, sehingga kamu tidak bisa kembali ke entri sebelumnya
  • router.back(): mundur satu langkah
  • router.refresh(): jalankan ulang render server untuk rute saat ini

Ada dua aturan yang perlu diingat. Pertama, useRouter berasal dari next/navigation, bukan dari next/router yang lama. Kedua, ini adalah hook, jadi memerlukan 'use client'.

Jika tautan biasa sudah cukup, gunakan tautan: itu adalah <a> sungguhan, sehingga berfungsi dengan keyboard, pembaca layar, dan klik tengah. Gunakan router.push jika navigasi merupakan akibat dari sesuatu, bukan sesuatu itu sendiri.

challenge icon

Tantangan

Mudah

Halaman beranda memiliki tombol "Order now" yang tidak melakukan apa pun. Buat tombol itu melakukan navigasi.

  1. Di components/OrderButton.jsx, dapatkan router dengan useRouter().
  2. Saat diklik, arahkan pengguna ke /menu dengan router.push.

Biarkan id="order-btn" pada tombol apa adanya: pengujian akan mengekliknya.

Coba sendiri

import './globals.css';

export const metadata = {
    title: 'My App',
};

export default function RootLayout({ children }) {
    return (
        <html lang="en">
            <body>
                {children}
            </body>
        </html>
    );
}
quiz iconUji dirimu

Pelajaran ini berisi kuis singkat. Mulai pelajarannya untuk menjawab kuis dan melacak progresmu.

Semua pelajaran di Dasar-Dasar Next.js