React Router یکی از مهمترین کتابخانههایی هست که معمولا در پروژه های React به کار میبریم. این کتابخانه به ما کمک میکند که وظیفه مسیریابی در برنامههای تک صفحهای را به سادگی به انجام برسانیم. فرض کنید یک وبسایت دارید که شامل صفحات مختلفی است؛ به کمک React Router میتوانید در بین این صفحات، بدون نیاز به بارگذاری مجدد صفحه، جابهجا شوید.
اصلیترین قابلیت React Router، مدیریت مسیرها و جابهجایی در بین آنهاست. برای درک بهتر، تصور کنید در یک سایت فروشگاهی، وقتی روی لینک محصولات کلیک میکنید، باید به صفحه محصولات بروید. با استفاده از React Router، میتوانید مسیر مربوط به صفحه محصولات را مشخص کنید و کامپوننت متناظر با آن را رندر کنید.
یکی دیگر از ویژگیهای جذاب این کتابخانه، سهولت در تعریف پارامترهای پویا در مسیرهاست. مثلا، اگر بخواهید یک صفحه برای جزئیات محصول ایجاد کنید که بر اساس شناسه محصول نمایش داده شود، میتوانید از پارامترهای پویا استفاده کنید تا شناسه محصول از URL گرفته شود و کامپوننت درستی رندر شود.
هرچند کار با React Router ساده به نظر میآید، اما نیاز است که برخی مفاهیم اصلی React را به خوبی بشناسید. برای مثال، وقتی Navigate میکنید، React با مدیریت state و props به شما اجازه میدهد صفحات مختلفی را نشان دهید و اطلاعات مربوط به هر صفحه را از قبل بارگذاری کنید و آماده نمایش داشته باشید.
این کتابخانه معمولا قابلیتهای بسیار بیشتری نیز ارائه میدهد، مانند ریدایرکت کردن کاربر به صفحات خاص، نمایش شرطی یک کامپوننت بر اساس آدرس URL و امکان استفاده از هدرهای سفارشی که در بهبود تجربه کاربری بسیار مؤثر هستند.
نمونه کد ساده
import { BrowserRouter as Router, Routes, Route } from 'react-router-dom';
function App() {
return (
<Router>
<Routes>
<Route path="/" element=<Home /> />
<Route path="about" element=<About /> />
<Route path="contact" element=<Contact /> />
</Routes>
</Router>
);
}
export default App;
import {'{ BrowserRouter as Router, Routes, Route }'} from 'react-router-dom';
این خط از کد، کتابخانه react-router-dom را ایمپورت میکند و استفاده از عناصر Router، Routes و Route را ممکن میسازد.
function App() {'{'}
این یک تابع کامپوننت React است که ساختار اصلی برنامه را تعریف میکند.
<Router>{'{'}
عنصر اصلی که نیاز داریم تا همه کامپوننتها و مسیرهای خود را بر اساس آن بپیچیم تا مسیریابی درست کار کند.
<Routes>{'{'}
این عنصر شامل تمام تجهیزات مسیریابی است و محلی برای تعریف همه مسیرها میباشد.
<Route path="/" element=<Home /> />
هر خطی که از Route استفاده میکند، مسیری خاص را به یک کامپوننت خاص ارتباط میدهد. در اینجا، مسیر 'home/' به کامپوننت Home مرتبط میشود.
export default App;
این خط کامپوننت App را به عنوان خروجی پیشفرض این ماژول صادر میکند و آن را آماده استفاده در جاهای دیگر قرار میدهد.