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.
馃З 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.
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>
);
}
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias