Rutas, layouts y paginas
Next.js crea rutas a partir del sistema de archivos. Esto hace que la estructura de carpetas sea parte de la arquitectura.
Ruta simple
txt
app/about/page.tsx -> /abouttsx
export default function AboutPage() {
return <h1>Sobre nosotros</h1>
}Ruta dinamica
txt
app/products/[id]/page.tsx -> /products/123tsx
export default function ProductPage({ params }: { params: { id: string } }) {
return <h1>Producto {params.id}</h1>
}Layout anidado
tsx
export default function ProductsLayout({ children }: { children: React.ReactNode }) {
return (
<section>
<nav>Productos</nav>
{children}
</section>
)
}Route groups
Los grupos no afectan a la URL:
txt
app/
(marketing)/
page.tsx
(dashboard)/
dashboard/
page.tsxSirven para separar layouts y zonas de la app.
not-found
tsx
import { notFound } from "next/navigation"
export default async function ProductPage({ params }) {
const product = await getProduct(params.id)
if (!product) notFound()
return <ProductView product={product} />
}Buenas practicas
- Usa route groups para separar areas.
- Mantén layouts ligeros.
- Define 404 por secciones cuando aporte contexto.
- Modela rutas dinamicas con tipos claros.
- No dupliques fetches innecesarios entre layout y page.
