ReactJS #16: React Router Part 1
Berpindah Halaman dalam Satu Aplikasi (Navigasi)
Halo, navigator handal! 🧭
Selama ini kita hanya membuat satu halaman saja. Padahal aplikasi sungguhan punya banyak halaman: Halaman Utama, Halaman Profil, Halaman Tentang, dll. Nah, bagaimana caranya berpindah-pindah halaman tanpa reload browser? Jawabannya adalah React Router!
🧐 Apa Itu React Router?
React Router adalah library (perpustakaan) yang memungkinkan kita membuat navigasi antar halaman dalam aplikasi React. Dengan React Router, kita bisa:
- Berpindah halaman tanpa reload (seperti aplikasi profesional).
- URL berubah sesuai halaman yang aktif.
- Tombol back/forward browser berfungsi normal.
- Membuat menu navigasi dengan tautan-tautan.
React Router versi terbaru adalah v6. Kita akan pakai versi ini karena lebih sederhana dan canggih. [citation:1][citation:4]
📦 Langkah 1: Install React Router
Buka terminal di proyek React-mu, lalu jalankan perintah ini:
Perintah ini akan mengunduh dan memasang React Router ke proyekmu. [citation:3][citation:7]
🏗️ Langkah 2: Membuat Halaman-halaman Sederhana
Sebelum kita atur routing, kita perlu membuat beberapa halaman. Buat folder baru src/pages, lalu buat tiga file:
📄 src/pages/Home.js
📄 src/pages/About.js
📄 src/pages/Contact.js
⚙️ Langkah 3: Mengatur Router di App.js
Sekarang saatnya mengatur routing. Buka src/App.js dan ganti dengan kode berikut:
Penjelasan Kode: [citation:2][citation:4]
- BrowserRouter: Membungkus seluruh aplikasi agar fitur routing bisa digunakan. Ibaratnya, ini adalah "peta gedung" untuk aplikasi kita.
- Routes: Tempat kita mendaftarkan semua rute (jalan) yang tersedia. Akan memilih satu rute yang cocok dengan URL.
- Route: Mendefinisikan satu rute.
pathadalah URL-nya,elementadalah komponen yang akan ditampilkan. - Link: Digunakan untuk membuat tautan navigasi. Berbeda dengan tag
<a>biasa, Link tidak me-reload halaman. [citation:7]
🎯 Langkah 4: Menambahkan Halaman Tidak Ditemukan (404)
Kalau pengguna mengunjungi URL yang tidak ada, sebaiknya kita tampilkan halaman khusus. Buat file src/pages/NotFound.js:
Lalu tambahkan rute khusus di App.js:
path="*" artinya "cocokkan semua URL yang tidak cocok dengan rute di atas". [citation:1][citation:4]
✨ Langkah 5: Membuat Menu dengan NavLink (Tambahan)
React Router juga punya komponen NavLink yang mirip Link, tapi bisa tahu apakah tautan sedang aktif atau tidak. Cocok untuk menu navigasi. Ganti bagian menu dengan NavLink:
Lalu tambahkan CSS untuk class active di App.css:
Sekarang menu yang sedang aktif akan berwarna oranye. [citation:2][citation:9]
🧪 Langkah 6: Uji Coba
Jalankan aplikasi dengan npm start. Coba klik menu Home, About, Contact. Perhatikan:
- URL di browser berubah sesuai halaman.
- Konten berganti tanpa reload halaman.
- Tombol back/forward browser membawamu ke halaman sebelumnya.
- Coba ketik URL yang tidak ada (misal
/coba), akan muncul halaman 404. [citation:1]
🧩 Penjelasan Komponen Router
- BrowserRouter: Router paling umum untuk aplikasi web. Menggunakan URL bersih (tanpa
#). [citation:2][citation:5] - HashRouter: Alternatif yang menambahkan
#di URL. Berguna jika server tidak bisa diatur. - MemoryRouter: Menyimpan riwayat di memori, tidak mengubah URL. Biasanya untuk testing.
Kita pakai BrowserRouter karena paling cocok untuk aplikasi web modern. [citation:5]
🧪 Latihan: Tambah Halaman Baru
Coba buat halaman Galeri yang menampilkan beberapa foto (bisa pakai emoji atau placeholder). Tambahkan:
- File
src/pages/Gallery.jsdengan konten sederhana. - Rute baru di
App.jsdengan path/gallery. - Tautan menu menggunakan NavLink.
Hasilnya, kamu akan punya 4 halaman yang bisa dinavigasi!
<Routes>. React Router akan mencocokkan dari atas ke bawah. Letakkan rute yang lebih spesifik di atas, dan rute umum (seperti /) atau catch-all (*) di bawah. [citation:2]
🚀 Kesimpulan
- React Router memungkinkan kita membuat navigasi multi-halaman dalam SPA (Single Page Application).
- Komponen utama:
BrowserRouter,Routes,Route,Link, danNavLink. [citation:4] Linkdigunakan untuk berpindah halaman tanpa reload.NavLinkbisa menambahkan gaya khusus untuk tautan yang aktif.- Rute
path="*"berguna untuk menangani halaman tidak ditemukan (404). [citation:1]
Di artikel selanjutnya (Part 2), kita akan belajar tentang rute dinamis (misal: /user/123) dan cara mengambil parameter dari URL. Sampai jumpa!