馃摝 Importaci贸n y modularizaci贸n de componentes

Curso de Next.js paso a paso

07 - Importaci贸n y modularizaci贸n de componentes

Aprende c贸mo organizar, importar y reutilizar tus componentes en Next.js para mantener tu proyecto limpio, escalable y f谩cil de mantener.


馃摝 ¿Qu茅 son los componentes?

En Next.js y React, un componente es una pieza independiente y reutilizable de la interfaz. Por ejemplo, una tarjeta, un bot贸n o un men煤 pueden ser componentes. Cada componente tiene su propio c贸digo, estructura y estilos, lo que facilita el mantenimiento.

Ejemplo visual:

馃З Tarjeta de usuario

Un ejemplo de componente independiente.


馃摜 Importaci贸n y exportaci贸n

Para usar un componente en otra parte del proyecto, primero se exporta desde su archivo y luego se importa donde se necesite.

// components/Boton.js
export default function Boton() {
  return <button className="bg-blue-600 text-white px-4 py-2 rounded">Click Aqu铆</button>;
}

// app/page.js
import Boton from '../components/Boton';

export default function Home() {
  return (
    <main className="p-6 text-center">
      <h2 className="text-2xl font-bold mb-4">P谩gina principal</h2>
      <Boton />
    </main>
  );
}
      
馃帹 Resultado visual:

Explicaci贸n:

  • export default function Boton(): exporta el componente para poder usarlo en otros archivos.
  • import Boton from '../components/Boton': lo importa en la p谩gina principal.
  • <Boton />: usa el componente como si fuera una etiqueta HTML.

馃З Modularizaci贸n del proyecto

La modularizaci贸n consiste en dividir el proyecto en partes peque帽as y reutilizables. En lugar de tener todo el c贸digo en un solo archivo, cada componente cumple una funci贸n espec铆fica.

馃搧 Estructura recomendada:
/app
 ├── page.js
 ├── layout.js
/components
 ├── Boton.js
 ├── Header.js
 ├── Footer.js
      

As铆, puedes importar los componentes en cualquier parte del proyecto sin repetir c贸digo.

Ejemplo visual de modularizaci贸n:
Header

Contenido principal

Footer


馃捇 Ejemplo completo (proyecto modular)

C贸digo modular

// components/Header.js
export default function Header() {
  return <header className="bg-blue-600 text-white p-4 text-center">Mi Sitio con Next.js</header>;
}

// components/Footer.js
export default function Footer() {
  return <footer className="bg-gray-200 text-center p-3 mt-4">© 2025 Todos los derechos reservados</footer>;
}

// app/page.js
import Header from '../components/Header';
import Footer from '../components/Footer';

export default function Home() {
  return (
    <main className="min-h-screen flex flex-col">
      <Header />
      <div className="flex-grow flex items-center justify-center">
        <h2 className="text-2xl font-bold text-blue-700">Bienvenido a Next.js</h2>
      </div>
      <Footer />
    </main>
  );
}
        
馃Л Resultado visual:
Header
Contenido principal
Footer

Publicar un comentario

0 Comentarios