Bereaksi Router
Buat Aplikasi React tidak termasuk perutean halaman.
React Router adalah solusi paling populer.
Tambahkan React Router
Untuk menambahkan React Router di aplikasi Anda, jalankan ini di terminal dari direktori root aplikasi:
npm i -D react-router-dom
Catatan: Tutorial ini menggunakan React Router v6.
Jika Anda meningkatkan dari v5, Anda harus menggunakan flag @latest:
npm i -D react-router-dom@latest
Struktur Folder
Untuk membuat aplikasi dengan beberapa rute halaman, pertama-tama mari kita mulai dengan struktur file.
Di dalam src
folder, kami akan membuat folder bernama
pages
dengan beberapa file:
src\pages\
:
Layout.js
Home.js
Blogs.js
Contact.js
NoPage.js
Setiap file akan berisi komponen React yang sangat mendasar.
Penggunaan Dasar
Sekarang kita akan menggunakan Router kita di index.js
file kita.
Contoh
Gunakan React Router untuk merutekan ke halaman berdasarkan URL:
index.js
:
import ReactDOM from "react-dom";
import { BrowserRouter, Routes, Route } from "react-router-dom";
import Layout from "./pages/Layout";
import Home from "./pages/Home";
import Blogs from "./pages/Blogs";
import Contact from "./pages/Contact";
import NoPage from "./pages/NoPage";
export default function App() {
return (
<BrowserRouter>
<Routes>
<Route path="/" element={<Layout />}>
<Route index element={<Home />} />
<Route path="blogs" element={<Blogs />} />
<Route path="contact" element={<Contact />} />
<Route path="*" element={<NoPage />} />
</Route>
</Routes>
</BrowserRouter>
);
}
ReactDOM.render(<App />, document.getElementById("root"));
Contoh Dijelaskan
Kami membungkus konten kami terlebih dahulu dengan <BrowserRouter>
.
Kemudian kami mendefinisikan kami <Routes>
. Sebuah aplikasi dapat memiliki beberapa <Routes>
. Contoh dasar kami hanya menggunakan satu.
<Route>
s dapat bersarang. Yang pertama <Route>
memiliki jalur /
dan merender Layout
komponen.
Nested <Route>
s mewarisi dan menambahkan ke rute induk. Jadi blogs
path digabungkan dengan parent dan menjadi
/blogs
.
Rute Home
komponen tidak memiliki jalur tetapi memiliki
index
atribut. Itu menentukan rute ini sebagai rute default untuk rute induk, yaitu /
.
Menyetel path
ke *
akan bertindak sebagai penampung semua untuk URL yang tidak ditentukan. Ini bagus untuk halaman kesalahan 404.
Dapatkan Sertifikasi!
$95 DAFTAR
Halaman / Komponen
Komponen Layout
memiliki
<Outlet>
dan <Link>
elemen.
Render <Outlet>
rute saat ini dipilih.
<Link>
digunakan untuk mengatur URL dan melacak riwayat penelusuran.
Setiap kali kami menautkan ke jalur internal, kami akan menggunakan <Link>
alih-alih <a href="">
.
"Rute tata letak" adalah komponen bersama yang menyisipkan konten umum di semua halaman, seperti menu navigasi.
Layout.js
:
import { Outlet, Link } from "react-router-dom";
const Layout = () => {
return (
<>
<nav>
<ul>
<li>
<Link to="/">Home</Link>
</li>
<li>
<Link to="/blogs">Blogs</Link>
</li>
<li>
<Link to="/contact">Contact</Link>
</li>
</ul>
</nav>
<Outlet />
</>
)
};
export default Layout;
Home.js
:
const Home = () => {
return <h1>Home</h1>;
};
export default Home;
Blogs.js
:
const Blogs = () => {
return <h1>Blog Articles</h1>;
};
export default Blogs;
Contact.js
:
const Contact = () => {
return <h1>Contact Me</h1>;
};
export default Contact;
NoPage.js
:
const NoPage = () => {
return <h1>404</h1>;
};
export default NoPage;