馃挕 Pages vs. App Directory: diferencias y usos

Next.js Pages vs App Directory

05 - 馃挕 Pages vs. App Directory: diferencias y usos

Descubre las diferencias clave entre el antiguo sistema pages/ y el nuevo app/ introducido en Next.js 13+. Aprende cu谩ndo utilizar cada uno y c贸mo migrar tu proyecto correctamente.


馃搫 El antiguo sistema: pages/

Antes de la versi贸n 13, Next.js usaba la carpeta pages/ para definir las rutas del proyecto. Cada archivo .js o .tsx dentro de pages/ representaba una ruta.

pages/
 ├─ index.js         → Ruta principal: /
 ├─ about.js         → Ruta: /about
 └─ contact.js       → Ruta: /contact
      

Este enfoque es simple, pero limitado para aplicaciones m谩s grandes, ya que no soporta caracter铆sticas modernas como layouts anidados, server components o data fetching optimizado.

馃Л El nuevo sistema: app/

A partir de Next.js 13, se introduce el App Router y la carpeta app/. Esta nueva arquitectura est谩 basada en React Server Components y permite:

  • Layouts y sub-layouts autom谩ticos
  • Rutas anidadas simples mediante carpetas
  • Mejor renderizado del lado del servidor
  • Carga progresiva y segmentaci贸n de UI
  • Mejor integraci贸n con React 18 (Suspense y Streaming)
app/
 ├─ layout.js        → Layout principal
 ├─ page.js          → P谩gina ra铆z (/)
 ├─ about/
 │   ├─ page.js      → Ruta: /about
 │   └─ layout.js    → Layout espec铆fico
 └─ contact/
     └─ page.js      → Ruta: /contact
      

⚖️ Comparaci贸n entre ambos sistemas

Caracter铆stica pages/ app/
Ruteo Basado en archivos Basado en carpetas
Layouts anidados No soportado ✅ Soportado nativamente
Server Components No ✅ S铆
Data Fetching getStaticProps, getServerSideProps Async directamente en componentes
Soporte futuro En mantenimiento Recomendado y en desarrollo activo

Ejemplo pr谩ctico (Migrando de pages/ a app/)

// Antes (pages/index.js)
export default function Home() {
  return 

Bienvenido a Next.js (versi贸n pages/)

; } // Ahora (app/page.js) export default function Home() { return (

Bienvenido al nuevo Next.js 馃殌

Usando el App Router y React Server Components

); }

Publicar un comentario

0 Comentarios