🚀 Next.js Cheatsheet Completo 🚀

Next.js es un framework de React para producción que ofrece las mejores características de desarrollo (como enrutamiento basado en sistema de archivos, optimización de imágenes, API Routes) y de rendimiento (renderizado del lado del servidor, generación estática, división de código).


1. 🌟 Conceptos Clave


2. 🛠️ Configuración Inicial

  1. Crear un Proyecto Next.js:

    npx create-next-app@latest # Seguir las indicaciones (preferir App Router)
    # npx create-next-app@latest --experimental-app # Para versiones antiguas si no era el default
    ```2.  **Iniciar el Servidor de Desarrollo:**
    ```bash
    npm run dev
    # o
    yarn dev

    Visita http://localhost:3000

  2. Construir para Producción:

    npm run build
  3. Iniciar la Aplicación Construida:

    npm start

3. 🗺️ Enrutamiento (App Router - /app Directory)

El nuevo sistema de enrutamiento basado en React Server Components.

3.1. Navegación (App Router)


4. 🗃️ Carga de Datos (App Router)

El App Router está diseñado para fetch de datos en Server Components.

4.1. Server Components (Fetch directo con async/await)

4.2. Revalidación de Datos

4.3. Server Actions ('use server')

4.4. Fetching en Client Components (CSR)


5. 🎨 Estilización


6. 🌐 API Routes (App Router - /app/api Directory)

Permite crear endpoints API RESTful o GraphQL en tu aplicación.


7. 📸 Optimización de Imágenes (next/image)

Componente de React que optimiza las imágenes automáticamente para rendimiento y responsividad.

import Image from 'next/image';

// Para imágenes locales (requiere que estén en /public o importadas)
import profilePic from '../public/profile.jpg';
<Image
  src={profilePic}
  alt="Foto de Perfil"
  width={500} // Se requiere ancho y alto para optimización
  height={500}
  placeholder="blur" // Opcional: efecto de blur mientras carga
/>

// Para imágenes remotas (requiere configuración en next.config.js)
<Image
  src="https://example.com/my-image.jpg"
  alt="Descripción"
  width={600}
  height={400}
  priority // Opcional: Carga la imagen con alta prioridad (para LCP)
/>

Configuración de dominios de imágenes remotas en next.config.js:

// next.config.js
/** @type {import('next').NextConfig} */
const nextConfig = {
  images: {
    remotePatterns: [
      {
        protocol: 'https',
        hostname: 'example.com',
        port: '',
        pathname: '/**',
      },
    ],
  },
};
module.exports = nextConfig;

8. 🔠 Optimización de Fuentes (next/font)

Optimiza las fuentes eliminando las solicitudes de red externas y garantizando que las fuentes se carguen antes de que el texto sea visible.

// app/layout.js
import { Inter } from 'next/font/google'; // Para fuentes de Google
// import localFont from 'next/font/local'; // Para fuentes locales

const inter = Inter({ subsets: ['latin'] });
// const myLocalFont = localFont({ src: './my-font.woff2' });

export default function RootLayout({ children }) {
  return (
    <html lang="en" className={inter.className}> {/* Aplica la fuente como clase */}
      <body>{children}</body>
    </html>
  );
}

9. 📄 Metadatos y SEO (App Router)

Configura metadatos para SEO y redes sociales.


10. 🗺️ Enrutamiento (Pages Router - /pages Directory - Legado)

10.1. Carga de Datos (Pages Router)


11. 💡 Buenas Prácticas y Consejos


Este cheatsheet te proporciona una referencia completa de Next.js, cubriendo los conceptos esenciales, el App Router, la carga de datos, el enrutamiento, la estilización, las API Routes y las mejores prácticas. Es una herramienta indispensable para construir aplicaciones web modernas y de alto rendimiento.