امیدوارم به بهتر شدن کمک کنم. در تلگرام و اینستاگرام پیام بفرست، SeyedAhmaddv - ارشد نرم افزار، توسعه دهنده ری اکت و نکست
معرفی Outlet در React Router: رندر کردن مسیرهای تو در تو
در این پست به بررسی کامپوننت Outlet
در کتابخانه React Router خواهیم پرداخت. این کامپوننت یکی از اجزای مهم برای مدیریت مسیرهای تو در تو (Nested Routes) است. در پروژههای ریاکت که از React Router برای مسیریابی استفاده میکنند، گاهی نیاز به رندر کردن چند مسیر فرزند در دل یک مسیر والد داریم. اینجاست که کامپوننت Outlet
به کمک میآید و نقش یک جایگاه (placeholder) را برای مسیرهای فرزند ایفا میکند.
در ادامه به توضیح و مثالهایی از نحوه استفاده از Outlet
پرداخته میشود تا به شما کمک کند بهتر با این مفهوم آشنا شوید و آن را در پروژههای خود به کار بگیرید.
در React Router، کامپوننت `Outlet` به عنوان یک جایگاه (placeholder) برای رندر کردن کامپوننتهای فرزند در داخل یک کامپوننت والد استفاده میشود. این مکانیزم معمولاً در زمان استفاده از مسیرهای تو در تو (nested routes) به کار میرود.
فرض کنید که شما یک مسیر والد دارید که خودش شامل چند مسیر فرزند است. در این حالت، `Outlet` در مسیر والد قرار میگیرد و زمانی که یکی از مسیرهای فرزند تطبیق داده میشود، محتوای آن مسیر فرزند در داخل `Outlet` رندر میشود.
import { Outlet } from 'react-router-dom';
function ParentLayout() {
return (
<div>
<h1>صفحه والد</h1>
{/* اینجا کامپوننتهای فرزند رندر میشوند */}
<Outlet />
</div>
);
}
سپس میتوانید مسیرهای فرزند را تعریف کنید:
import { createBrowserRouter, RouterProvider } from 'react-router-dom';
import ParentLayout from './ParentLayout';
import ChildComponent from './ChildComponent';
const router = createBrowserRouter([
{
path: "/parent",
element: <ParentLayout />,
children: [
{
path: "child",
element: <ChildComponent />,
},
],
},
]);
function App() {
return <RouterProvider router={router} />;
}
در این مثال:
- وقتی کاربر به مسیر `/parent/child` میرود، کامپوننت `ChildComponent` داخل `Outlet` که در `ParentLayout` قرار دارد رندر میشود.
- اگر مسیری به `/parent` برود (بدون `/child`)، فقط کامپوننت والد (`ParentLayout`) نمایش داده میشود.
پس `Outlet` یک جایگاه است که مسیرهای فرزند در آن رندر میشوند.
مطلبی دیگر از این انتشارات
React Events رویدادها در ری اکت
مطلبی دیگر از این انتشارات
آموزش ری اکت پیشرفته
مطلبی دیگر از این انتشارات
بیش از 50+ ایده پروژه سطح مبتدی و متوسط ری اکت React 🧙🏻♀️