एक layout साझा UI हो जसले धेरै पृष्ठहरूलाई बेष्टाउँछ र नेभिगेशनमा कायम रहन्छ — बच्चा route हरूको बीचमा घुमिंदा यो पुनः render वा state गुमाउँदैन। तपाई यसलाई layout.tsx फाइलको साथ परिभाषित गर्नुहुन्छ।
root layout (आवश्यक)
() {
(
);
}
हरेक App Router अनुप्रयोगको root layout हुनु आवश्यक छ — यो पुरानो _app.tsx/_document.tsx को जग्गा लिन्छ।
Layouts फोल्डर संरचनाको अनुसार नेस्ट गर्नुहुन्छ, त्यसैले हरेक खण्डले आफ्नो स्वयंको कायम र्यापर थप्न सक्छ:
app/layout.tsx → wraps everything (header/footer)
app/dashboard/layout.tsx → wraps all /dashboard/* pages (adds a sidebar)
app/dashboard/settings/page.tsx → rendered inside BOTH layouts
// app/dashboard/layout.tsx — only wraps dashboard routes
export default function DashboardLayout({ children }) {
return (
<div className="flex">
<Sidebar /> {/* stays mounted as you move within /dashboard */}
<main>{children}</main>
</div>
);
}
जब तपाई /dashboard/settings बाट /dashboard/billing मा नेभिगेट गर्नुहुन्छ, dashboard layout (र यसको <Sidebar>) माउन्ट रहन्छ — यसको state (स्क्रोल स्थिति, खुला मेनु, फाइल इनपुट) सुरक्षित रहन्छ, र केवल पृष्ठ सामग्री स्वैप गर्नुहुन्छ। यो सम्पूर्ण शेल पुनः render गर्नुभन्दा अधिक कुशल छ र चिकनो UX दिन्छ।
// template.tsx — like layout but RE-mounts on every navigation (fresh state each time)
template.tsx को प्रयोग layout.tsx को सट्टामा गर्नुहोस् दुर्लभ अवसरमा जब तपाई चाहनुहुन्छ कि र्यापर नेभिगेशन प्रति रीसेट हुनु।
Layouts कसरी App Router ले साझा, कायम UI (हेडर, साइडबार, nav) लाई route tree को कुनै पनि स्तरमा मडेल गर्छ।
नेभिगेशनमा यिनको persistence — state सुरक्षित गर्दै र शेल को पुनः render बचाउँदै — App Router को मुख्य लाभ हो, र nested layouts ले हरेक खण्डलाई आफ्नो संरचना स्वच्छतापूर्वक रचना गर्न दिन्छ।
विस्तृत उत्तरसहित IT अन्तर्वार्ता प्रश्नहरूको पुस्तकालय — जुनियरदेखि सिनियरसम्म।
दान गर्नुहोस्