Nested Routes المسارات المتداخلة
آخر تحديث: 2026-11-03
Nested Routes المسارات المتداخلة
تُعبّر المسارات المتداخلة عن «تخطيط + صفحات فرعية» كعنصري Route أب وابن: يحتوي Route أب على مسارات أخرى، ويرسم المكوّن الأب «حفرة» Outlet تُرسم فيها الصفحة الفرعية المطابقة. ويُبنى تخطيط لوحة الإدارة الكلاسيكي — بشريط جانبي ثابت ومنطقة محتوى متغيّرة — بالكامل على هذا النمط. ويحتفظ كل مستوى بإطاره الخاص، فتبقى حتى شجرة تخطيطات عميقة سهلة الفهم.
| المجموعة | التوجيه وإدارة الحالة |
|---|---|
| النوع | مكوّن |
| منذ الإصدار | React Router 6.4 |
ℹ️ ملاحظة يحوّل المحرّر JSX إلى JavaScript ويعرض الواجهة الحقيقية داخل بيئة معزولة؛ تُركَّب المكوّنات تلقائياً دون استدعاء render يدوي.
📝 الصيغة
import { Routes, Route, Outlet } from 'react-router-dom'
function DashboardLayout() {
return (
<div>
<aside>Sidebar (fixed by the parent)</aside>
<main><Outlet /></main> {/* the child route renders here */}
</div>
)
}
<Route path="dashboard" element={<DashboardLayout />}>
<Route index element={<Overview />} /> {/* the default child page of /dashboard */}
<Route path="team" element={<Team />} /> {/* /dashboard/team */}
</Route>
⚙️ المعاملات
| path (parent) | قطعة مسار الأب؛ يُلحَق بها مسار الابن، وبادئة / تجعله مطلقًا. |
|---|---|
| index | علامة خاصة على الابن: الصفحة الفرعية الافتراضية التي تُرسم حين لا يحمل مسار الأب نفسه (/dashboard مثلًا) أي قطع إضافية. |
القيمة المرجعة:لا شيء (مكوّن تصريحي). يرسم الأب عنصره، وموضع Outlet داخله يقرّر أين يظهر محتوى الابن.
▶ مثال
المثال يعمل مباشرة: يُعرض تلقائياً عند التوسيع وتظهر التعديلات فوراً.
الناتج:
يبقى الإطار الخارجي والعنوان (تخطيط الأب) كما هما، بينما يتبدّل الصندوق المتقطّع (موضع Outlet) بالصفحات الفرعية عند النقر — نتيجة رسم المسارات الأب/الابن المتداخلة مع Outlet (عرض توضيحي محاكى).
💡 النقاط الأساسية
💡 نصيحة يجيب المسار index عن «ماذا يُعرض عند زيارة /dashboard نفسها»: يمنح الأب صفحة افتراضية يرسمها Outlet تخطيطه.
ℹ️ ملاحظة مسار الابن بلا مائلة بادئة يُلحَق نسبيًا (path='team' -> /dashboard/team)، وبـ / يُحسب من الجذر؛ والصيغة النسبية أسهل صيانة عند إعادة ترتيب التسلسل.
⚠️ تحذير إن نسي المكوّن الأب Outlet فلن يُرسم الابن المطابق — ومنطقة فارغة هي أكثر أعراض هذا الخطأ شيوعًا.
🏷️ المزيد من التوجيه والحالة
💡 حالات ذات صلة
المزيد من الحالات قريباً.
📚 دروس ذات صلة
❓ الأسئلة الشائعة
س ما هو Outlet؟
ج عنصر نائب لرسم الابن. تصوّره حفرة حفرها الأب: يُملأ فيها عنصر الابن المطابق، ويمكن تداخل Outlets بعمق ما شئت.
س لماذا يكون /dashboard فارغًا؟
ج لأن لا مسارًا فرعيًا طابق. أضف للأب مسارًا فرعيًا index يوفّر صفحة افتراضية.
س هل يمكن تداخل المسارات الفرعية أكثر؟
ج نعم. تبنّي Outlets داخل Outlets شجرة تخطيط بأي عمق، وكل مستوى أب يحتفظ بإطاره الثابت الخاص.