روتینگ با React Router
یکی از مهمترین نیازهای هر اپلیکیشن SPA، مدیریت مسیرها (Routing) است. کتابخانهی React Router محبوبترین ابزار برای این کار در اکوسیستم React محسوب میشود. با کمک آن میتوانیم مسیرهای مختلف، پارامترها، ریدایرکت، و حتی مسیرهای محافظتشده بسازیم.
برای شروع باید React Router را نصب کنید:
npm install react-router-dom
سپس در نقطه ورود اپلیکیشن (مثلاً main.jsx یا index.js) آن را راهاندازی میکنیم:
import { BrowserRouter } from "react-router-dom";import App from "./App";
در فایل App.jsx مسیرها را تعریف میکنیم:
import { Routes, Route, Link } from "react-router-dom";import Home from "./pages/Home";import About from "./pages/About";function App() {return (<>خانهدرباره ما} /> } /> );}
تفاوت با تگ در HTML: تگ Link باعث reload کامل صفحه نمیشود و از مزایای SPA استفاده میکنیم.
برای ریدایرکت یا ناوبری برنامهنویسیشده:
import { useNavigate } from "react-router-dom";const navigate = useNavigate();navigate("/dashboard");
برای گرفتن پارامترهای مسیر:
} /> // در داخل کامپوننت Productconst { id } = useParams();
برای ساخت مسیرهای داخل یک صفحه (مثلاً تبها یا صفحات فرعی):
}> } /> } />
و در Dashboard.jsx:
Outlet جایی است که محتوای فرزند نمایش داده میشود.
برای هدایت کاربر به مسیر جدید (مثلاً پس از لاگین موفق):
import { Navigate } from "react-router-dom";if (!isLoggedIn) {return; }
جایگزین Redirect در نسخههای جدید React Router است.
برای محدود کردن دسترسی به برخی صفحات (مثلاً فقط کاربران لاگینشده):
function ProtectedRoute({ children }) {const isAuth = useAuth();return isAuth ? children :; }
و استفاده:
path="/dashboard"element={}/>
در این فصل یاد گرفتیم که چطور با استفاده از React Router مسیرها و لینکها را تعریف کنیم، از پارامترها و مسیرهای تو در تو استفاده کنیم، کاربر را برنامهنویسیشده منتقل کنیم و مسیرها را در برابر دسترسیهای غیرمجاز محافظت کنیم.