नेस्टेड रूट और आउटलेट लेआउट
नेस्टेड और कंपोनेंट का उपयोग करके बहु-स्तरीय रूट लेआउट बनाएँ।
नेस्टेड रूट और आउटलेट लेआउट, CoddyKit पर React Academy का एक निःशुल्क पाठ है। यह 4 में से 1वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह React Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। React Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
नेस्टेड रूट क्या होते हैं
React Router v6 में नेस्टेड रूट आपको लेआउट संयोजित करने देते हैं: पैरेंट रूट एक शेल (नेविगेशन, साइडबार) रेंडर करता है और चाइल्ड रूट <Outlet /> के माध्यम से सामग्री क्षेत्र भरते हैं।
नेस्टेड रूट निर्धारित करना
अपने राउटर कॉन्फ़िगरेशन में चाइल्ड <Route> एलिमेंट को पैरेंट <Route> के अंदर रखिए। पैरेंट पथ सभी चाइल्ड रूट के लिए उपसर्ग होता है।
import { createBrowserRouter, RouterProvider } from 'react-router-dom';
const router = createBrowserRouter([
{
path: '/',
element: <RootLayout />,
children: [
{ path: 'dashboard', element: <Dashboard /> },
{ path: 'settings', element: <Settings /> },
],
},
]);Outlet कॉम्पोनेंट
<Outlet /> पैरेंट लेआउट कॉम्पोनेंट में एक प्लेसहोल्डर है। React Router इसे मेल खाने वाले चाइल्ड रूट के एलिमेंट से बदल देता है।
function RootLayout() {
return (
<div>
<nav>
<Link to="/dashboard">Dashboard</Link>
<Link to="/settings">Settings</Link>
</nav>
<main>
<Outlet /> {/* child route renders here */}
</main>
</div>
);
}इंडेक्स रूट
index: true रूट तब रेंडर होता है जब पैरेंट URL से बिल्कुल मेल खाता है। जब किसी अन्य चाइल्ड पथ से मेल नहीं मिलता, तब यह डिफ़ॉल्ट चाइल्ड की तरह काम करता है।
{
path: '/',
element: <RootLayout />,
children: [
{ index: true, element: <Home /> }, // renders at '/'
{ path: 'about', element: <About /> },
],
}बहु-स्तरीय नेस्टिंग
रूट कई स्तरों तक नेस्ट किए जा सकते हैं। शृंखला का प्रत्येक लेआउट कॉम्पोनेंट अपने चाइल्ड के लिए एक <Outlet /> रेंडर करता है।
const router = createBrowserRouter([
{
path: '/app',
element: <AppShell />,
children: [
{
path: 'users',
element: <UsersLayout />,
children: [
{ index: true, element: <UserList /> },
{ path: ':id', element: <UserDetail /> },
],
},
],
},
]);Outlet संदर्भ
<Outlet /> के context प्रॉप के माध्यम से लेआउट से नेस्टेड चाइल्ड रूट को डेटा भेजिए और चाइल्ड में useOutletContext() से उसे पढ़िए।
// Parent layout
function UsersLayout() {
const [selected, setSelected] = useState(null);
return <Outlet context={{ selected, setSelected }} />;
}
// Child route
function UserDetail() {
const { selected } = useOutletContext();
return <div>{selected}</div>;
}पथरहित रूट के साथ नामित लेआउट
path के बिना कोई रूट केवल लेआउट के लिए चाइल्ड को रैप करता है और URL में कोई खंड नहीं जोड़ता। साझा लेआउट के अंतर्गत रूट को समूहित करने के लिए यह उपयोगी है।
{
element: <AuthenticatedLayout />, // no path
children: [
{ path: '/profile', element: <Profile /> },
{ path: '/billing', element: <Billing /> },
],
}नेस्टेड रूट में सापेक्ष लिंक
नेस्टेड रूट के अंदर <Link to='sibling'> वर्तमान रूट के पथ के सापेक्ष हल होता है, ठीक HTML में सापेक्ष URL की तरह।
// Inside /app/users — link goes to /app/users/new
function UserList() {
return <Link to="new">Add User</Link>;
}नेस्टेड रूट में useMatch
useMatch(pattern) तब मिलान डेटा लौटाता है जब वर्तमान URL पैटर्न से मेल खाता है। नेस्टेड लेआउट में सक्रिय लिंक को शैली देने के लिए यह उपयोगी है।
function NavLink({ to, children }) {
const match = useMatch(to);
return (
<Link to={to} className={match ? 'active' : ''}>
{children}
</Link>
);
}प्रत्येक खंड के लिए त्रुटि सीमाएँ
किसी भी नेस्टेड रूट में errorElement जोड़कर केवल उसी खंड की त्रुटियाँ पकड़िए, ताकि पूरा लेआउट शेल क्रैश न हो।
{
path: 'users',
element: <UsersLayout />,
errorElement: <UsersError />,
children: [
{ path: ':id', element: <UserDetail /> },
],
}व्यावहारिक तरीका: डैशबोर्ड लेआउट
एक सामान्य डैशबोर्ड में ऐप शेल (हेडर + साइडबार) के लिए शीर्ष-स्तरीय रूट और प्रत्येक खंड के लिए नेस्टेड रूट होते हैं। इससे शेल लगा रहता है और केवल सामग्री क्षेत्र बदलता है।
function DashboardShell() {
return (
<div className="dashboard">
<Sidebar />
<div className="content">
<Outlet />
</div>
</div>
);
}त्वरित जाँच
मेल खाने वाले चाइल्ड रूट को दिखाने के लिए पैरेंट लेआउट को कौन-सा कॉम्पोनेंट रेंडर करना आवश्यक है?
पुनरावलोकन
नेस्टेड रूट पैरेंट रूट को स्थायी लेआउट रेंडर करने देते हैं, जबकि चाइल्ड रूट <Outlet /> भरते हैं। डिफ़ॉल्ट चाइल्ड के लिए इंडेक्स रूट, साझा लेआउट के लिए पथरहित रूट और डेटा नीचे भेजने के लिए useOutletContext का उपयोग कीजिए।
एआई शिक्षक के साथ React सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 88
- पाठ
- 324
अक्सर पूछे जाने वाले प्रश्न
क्या “नेस्टेड रूट और आउटलेट लेआउट” पाठ निःशुल्क है?
हाँ—“नेस्टेड रूट और आउटलेट लेआउट” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और React Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। React Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“नेस्टेड रूट और आउटलेट लेआउट” में मैं क्या सीखूँगा?
नेस्टेड और कंपोनेंट का उपयोग करके बहु-स्तरीय रूट लेआउट बनाएँ। आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ React Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या React Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर React Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 1वाँ पाठ है।
“नेस्टेड रूट और आउटलेट लेआउट” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस React Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर React Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- नेस्टेड रूट और आउटलेट लेआउट
- लोडर और ऐक्शन (डेटा राउटर API)
- सुरक्षित रूट और प्रमाणीकरण गार्ड
- URL सर्च पैरामीटर में स्टेट प्रबंधित करना