react-Router-dom در ریکت چیست؟
react-Router-dom در ریکت چیست؟ در دنیای امروزی که وب بسیار توسعه یافته، ساخت اپلیکیشنهای تک صفحهای (SPA) با React به یک استاندارد تبدیل شده است. اما مدیریت کردن این مسیرها (Routing) در چنین برنامههایی یکی از چالشهای مهم به شمار میآید. اینجاست که لازم می شود، بزار قدرتمندی مثل React Router DOM وارد شود.
در این مقاله با این کتابخانهی پرکاربرد آشنا میشویم، نحوهی نصب و استفاده از آن را یاد میگیریم و با مثالهای کاربردی، مفاهیم آن را بهصورت عملی بررسی میکنیم.
برای یادگیری و راهنمایی بیشتر بهتر است به آموزش برنامه نویسی در کرج سر بزنید.
✅ React Router DOM چیست و چرا اهمیت دارد؟
در قدم اول بهتر است با این کتابخانه پرکاربرد آشنا شویم تا بهتر بتوانیم مطالب را درک کنیم. برخلاف وبسایتهای سنتی که هر صفحه HTML جداگانهای دارد، در اپلیکیشنهای SPA فقط یک فایل HTML بارگذاری میشود و بقیه محتوا از طریق جاوا اسکریپت و بدون رفرش صفحه مدیریت میشود.
حالا React Router DOM به ما این امکان را میدهد که:
برای آدرسهای مختلف، به کامپوننتهای مختلف نمایش دهیم
بدون بارگذاری مجدد، بین صفحات به راحتی جابهجا شویم
بتوانیم مسیرهای داینامیک و محافظتشده ایجاد کنیم
و از همه مهمتر، بتوانیم تجربه کاربری حرفهایتری بسازیم
✅نصب و راهاندازی React Router DOM
برای شروع استفاده از React Router DOM در پروژهی React، ابتدا باید کتابخانه را به پروژه اضافه کنیم: این کار بهسادگی با استفاده از npm یا yarn قابل انجام است.
- نصب با npm:
npm install react-router-dom
- نصب با yarn:
yarn add react-router-dom
پس از نصب، باید در فایل اصلی پروژه (معمولاً App.js
یا App.tsx
) از کامپوننت BrowserRouter
برای فعالسازی سیستم مسیریابی استفاده کنیم. این کامپوننت مانند یک ظرف عمل میکند که مسیرها را مدیریت میکند.
✅ ساختار اولیه پروژه پس از راهاندازی:
// App.js
import React from 'react';
import { BrowserRouter, Routes, Route } from 'react-router-dom';
import Home from './pages/Home';
import About from './pages/About';
function App() {
return (
<BrowserRouter>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
</Routes>
</BrowserRouter>
);
}
export default App;
در مثال بالا:
BrowserRouter
، پایه و اساس سیستم مسیریابی است.Routes
، مجموعهای از مسیرهای مختلف را نگه میدارد.Route
، مسیر خاصی را تعریف میکند که با یک آدرس (path
) و یک کامپوننت (element
) مشخص میشود.
با این راهاندازی ساده، اپلیکیشن آمادهی پشتیبانی از چند صفحهی مجازی خواهد بود.
✅ معرفی مفاهیم کلیدی در React Router DOM
پس از نصب و راهاندازی، برای استفاده مؤثر از React Router DOM باید با مفاهیم پایهای آن آشنا شویم. در این بخش مهمترین کامپوننتها و هوکهایی را بررسی میکنیم که در مدیریت مسیرها در React استفاده میشوند.
1. BrowserRouter
این کامپوننت ریشهی سیستم مسیریابی در برنامه است. باید همهی مسیرها درون این کامپوننت قرار بگیرند. از BrowserRouter
برای اپلیکیشنهایی استفاده میشود که از تاریخچهی مرورگر (history API) استفاده میکنند.
import { BrowserRouter } from 'react-router-dom';
<BrowserRouter>
{/* سایر مسیرها در اینجا قرار میگیرند */}
</BrowserRouter>
2. Routes
و Route
Routes
شامل مجموعهای از مسیرهاست.هر
Route
یک مسیر خاص را تعریف میکند که با یک آدرس (path
) و کامپوننت (element
) مشخص میشود.
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
</Routes>
3. Link
و NavLink
برای جابجایی بین صفحات در React Router نباید از تگهای <a>
معمولی استفاده کنیم، چون باعث رفرش کل صفحه میشوند. به جای آن، از Link
یا NavLink
استفاده میکنیم:
import { Link } from 'react-router-dom';
<Link to=“/about”>درباره ما</Link>
NavLink
مانند Link
عمل میکند ولی به ما اجازه میدهد که لینک فعال (active) را استایلدهی کنیم:
import { NavLink } from 'react-router-dom';
<NavLink to=“/about” className={({ isActive }) => isActive ? “active” : “”}>
درباره ما
</NavLink>
4. useNavigate
این هوک زمانی استفاده میشود که بخواهیم از طریق کد، کاربر را به مسیر دیگری هدایت کنیم (مثلاً بعد از لاگین موفق):
import { useNavigate } from 'react-router-dom';
const navigate = useNavigate();
navigate(‘/dashboard’);
5. useParams
برای دسترسی به پارامترهایی که در مسیر تعریف شدهاند (مثل /user/:id
) از این هوک استفاده میشود:
import { useParams } from 'react-router-dom';
const { id } = useParams();
در این بخش، یک پروژه ساده با سه صفحه ایجاد میکنیم: صفحه اصلی (Home)، درباره ما (About)، و تماس با ما (Contact). در ادامه، مسیرها را تعریف میکنیم و از Link
برای جابجایی بین آنها استفاده میکنیم.
:ساختار فایلها
src/
├── App.js
└── pages/
├── Home.js
├── About.js
└── Contact.js
:محتوای فایلها
Home.js
export default Home;
About.js
const About = () => {
return <h1>درباره ما</h1>;
};
Contact.js
const Contact = () => {
return <h1>تماس با ما</h1>;
};
3. پیادهسازی مسیرها در App.js
import React from 'react';
import { BrowserRouter, Routes, Route, Link } from 'react-router-dom';
import Home from './pages/Home';
import About from '.
/pages/About';
import Contact from './pages/Contact';
function App() {
return (
<BrowserRouter>
<nav>
<ul>
<li><Link to="/">خانه</Link></li>
<li><Link to="/about">درباره ما</Link></li>
<li><Link to="/contact">تماس با ما</Link></li>
</ul>
</nav>
<Routes>
<Route path="/" element={<Home />} />
<Route path="/about" element={<About />} />
<Route path="/contact" element={<Contact />} />
</Routes>
</BrowserRouter>
);
}
export default App;
در مقاله بعدی، با مسیرهای داینامیک آشنا خواهیم شد که یکی از قابلیتهای مهم React Router است.
✅ جمعبندی
در این مقاله با یکی از مهمترین ابزارهای مسیریابی در اپلیکیشنهای React آشنا شدیم: React Router DOM این کتابخانه به ما امکان میدهد تا در برنامههای تکصفحهای (SPA) به سادگی مسیرهای مختلف را تعریف و مدیریت کنیم.
در طول مقاله با مفاهیم کلیدی مانند:
BrowserRouter
،Routes
وRoute
لینکها با
Link
وNavLink
مسیرهای داینامیک با
useParams
ناوبری برنامهمحور با
useNavigate
و نمایش صفحات خطا با مسیر wildcard (
*
)
آشنا شدیم و هر کدام را با مثال عملی بررسی کردیم.
React Router DOM ابزاری انعطافپذیر، قابل اعتماد و قدرتمند برای ساخت برنامههایی روان، بدون بارگذاری مجدد و با تجربه کاربری حرفهای است. یادگیری و استفاده صحیح از این کتابخانه، یکی از مهارتهای ضروری برای هر توسعهدهنده React محسوب میشود.