Next.js मा दुई routing systems छन्। Pages Router (pages/) मूल हो; App Router (app/, Next 13 देखि) नयाँ, सिफारिस गरिएको एक हो जो React Server Components वरिपरि बनाइएको छ।
Pages Router (pages/) App Router (app/)
──────────────────────────────────────────────────────
pages/about.tsx → /about app/about/page.tsx → /about
Default export = page page.tsx = page, layout.tsx = layout
getServerSideProps (SSR) async Server Components (fetch directly)
getStaticProps (SSG) fetch() with caching options
_app.tsx / _document.tsx Nested layout.tsx files
All components client-rendered Server Components by default
// App Router — a Server Component that fetches data directly, no extra API
// app/users/page.tsx
export default async function Users() {
const res = await fetch("https://api.example.com/users"); // runs on the SERVER
const users = await res.json();
return <ul>{users.map(u => <li key={u.id}>{u.name}</li>)}</ul>;
}
App Router मा, components पूर्वनिर्धारित रूपमा Server Components हुन् — तिनीहरू सर्भरमा चल्छन्, सीधै डेटा await गर्न सक्छन्, र त्यो component को लागि ब्राउजरमा शून्य JS पठाउँछन्। Pages Router को सट्टमा विशेष कार्यहरू (getServerSideProps) प्रयोग गरेर डेटा क्लाइन्ट-रेन्डर गरिएको पृष्ठहरुमा पास गरिन्थ्यो।
layout.tsx)।loading.tsx / Suspense को साथ।नयाँ projects को लागि App Router प्रयोग गर्नुहोस् — यो Next.js विकास केन्द्रित छ। Pages Router अझै पनि समर्थित छ (र दुई एक app मा एकसाथ रहन सक्छन्) तर अनिवार्य रूपमा रखरखाव मोडमा छ।
App Router ले Next.js को वर्तमान आर्किटेक्चर प्रतिनिधित्व गर्छ (Server Components, nested layouts, streaming)।
लिगेसी Pages Router बाट कसरी फरक छ भनेर जान्नु — विशेष गरी server-first पूर्वनिर्धारितता र layout मडेल — कुनै पनि आधुनिक Next.js कोडबेसमा काम गर्न आवश्यक छ।