Navigasi dengan <Link> & Layout Komponen Global - Next.js Part 2
🔗 Navigasi dengan <Link> & Layout Komponen Global - Next.js Part 2
Pada bagian sebelumnya, kita sudah membuat halaman index.js
dan about.js
. Kali ini, kita akan belajar membuat navigasi antar halaman menggunakan komponen next/link
serta membangun layout global yang konsisten seperti header dan footer.
🎯 Apa yang Akan Kita Pelajari?
- Menambahkan navigasi antar halaman menggunakan
<Link>
- Membuat layout global (Header + Footer)
- Menyusun layout agar reusable di semua halaman
📦 1. Navigasi dengan next/link
Next.js memiliki sistem routing berbasis file. Untuk berpindah antar halaman, kita gunakan komponen <Link>
dari next/link
.
// pages/index.js
import Link from 'next/link';
export default function Home() {
return (
<div>
<h1>Selamat Datang di Homepage</h1>
<p>
Pergi ke halaman <Link href="/about"><a>Tentang Kami</a></Link>
</p>
</div>
);
}
Begitu pula di halaman lain:
// pages/about.js
import Link from 'next/link';
export default function About() {
return (
<div>
<h1>Tentang Kami</h1>
<p><Link href="/"><a>Kembali ke Home</a></Link></p>
</div>
);
}
📌 Catatan
- Sejak Next.js 13, bisa juga pakai
<Link>Home</Link>
langsung tanpa<a>
. - Gunakan router otomatis berdasarkan nama file di folder
pages
.
🧱 2. Membuat Komponen Layout Global
Kita ingin setiap halaman punya tampilan yang konsisten: ada header, footer, dan konten di tengah. Untuk itu, kita buat komponen layout tersendiri.
// components/Layout.js
import Link from 'next/link';
export default function Layout({ children }) {
return (
<>
<header style={headerStyle}>
<nav>
<Link href="/"><a>Home</a></Link> |
<Link href="/about"><a>About</a></Link>
</nav>
</header>
<main style={mainStyle}>{children}</main>
<footer style={footerStyle}>Copyright © 2025</footer>
</>
);
}
// Optional styling
const headerStyle = {
padding: "10px",
background: "#222",
color: "white",
textAlign: "center"
};
const footerStyle = {
padding: "10px",
background: "#eee",
textAlign: "center"
};
const mainStyle = {
minHeight: "70vh",
padding: "20px"
};
🧩 3. Gunakan Layout di Halaman
// pages/index.js
import Layout from '../components/Layout';
export default function Home() {
return (
<Layout>
<h1>Beranda</h1>
<p>Ini adalah halaman utama</p>
</Layout>
);
}
// pages/about.js
import Layout from '../components/Layout';
export default function About() {
return (
<Layout>
<h1>Tentang Kami</h1>
<p>Informasi tentang situs ini</p>
</Layout>
);
}
📂 Struktur Folder Setelah Tambahan Layout
my-next-app/
├── components/
│ └── Layout.js
├── pages/
│ ├── index.js
│ └── about.js
├── public/
├── styles/
📌 Tips Tambahan
- Kamu bisa tambahkan Head meta SEO dengan
next/head
- Layout bisa diperluas untuk sidebar, dark mode, dll
- Gunakan layout ini sebagai base komponen di semua halaman
✅ Kesimpulan
Dengan sistem navigasi dan layout ini, aplikasi kamu jadi lebih tertata dan profesional. Halaman bisa dengan mudah berpindah dan tampilan konsisten di seluruh bagian.
Di Part 3, kita akan belajar **fetch data dari API** dengan getServerSideProps
atau getStaticProps
di Next.js. Fitur powerful untuk membuat halaman dinamis dan SEO-ready!
Sampai jumpa di tutorial selanjutnya ya, semangat belajar Next.js! ⚡
Posting Komentar untuk "Navigasi dengan <Link> & Layout Komponen Global - Next.js Part 2"
Posting Komentar