Creación y Organización de Componentes en Angular
Clase 29 de 71 • Curso de Angular: Creación de Aplicaciones Web
Resumen
¿Cómo se estructuran las aplicaciones de Angular desde sus componentes?
En Angular, los componentes son la base para construir aplicaciones robustas, como si fueran piezas de Lego que permiten crear grandes arquitecturas. Un componente en Angular se compone de un template, un CSS y un archivo de lógica en TypeScript. La comunicación entre el template y la lógica se efectúa mediante el property binding y el event binding. Estos permiten enviar datos desde la lógica al template y recibir eventos del usuario, como clics o teclas presionadas, para modificar propiedades del componente.
¿Cómo crear y organizar tus propios componentes?
La versatilidad de Angular no se limita a usar solo etiquetas HTML estándar; puedes desarrollar tus propios componentes, con propiedades y eventos personalizados. Al iniciar un proyecto grande, es conveniente organizar la aplicación en módulos o dominios. Cada dominio puede representar diferentes secciones del proyecto, como productos, ventas o autentificación. Así puedes estructurar tu proyecto de esta manera:
- Carpetas por dominio: Cada dominio como "productos" o "ventas" tendrá su propia carpeta.
- Subcarpetas para páginas y componentes: Dentro de cada dominio, puedes crear:
- Páginas: Utilizadas principalmente en el enrutado de la aplicación.
- Componentes: Los bloques reutilizables que componen estas páginas.
¿Cómo se generan componentes desde la terminal?
Una vez definida la estructura, pasa a la terminal para empezar a crear los componentes. Utiliza el comando ng generate
o su abreviatura ng g
. Por ejemplo:
ng generate component domains/productos/pages/list
Este comando crea una página de lista dentro del dominio de productos. Para componentes más específicos, por ejemplo, para un producto individual:
ng generate component domains/productos/components/product
¿Cómo integrar los componentes en el sistema de rutas?
El siguiente paso es modificar el sistema de rutas para que tu aplicación no dependa exclusivamente del app component
, sino que permita el uso de páginas y componentes definidos en tu proyecto modular. Para este propósito se utiliza:
- Router Outlet: Este es el elemento que permite el reconocimiento de rutas y el renderizado de componentes según la navegación del usuario.
En el archivo de rutas, asegura que el app component
contenga el router outlet
para activar la lógica de rutas, y define las rutas necesarias como la ruta inicial vacía (''
) que renderice el list component
:
const routes: Routes = [
{ path: '', component: ListComponent },
// otras rutas
];
¿Es necesario un archivo separado para cada template?
Para templates muy pequeños, Angular ofrece flexibilidad. No es obligatorio crear un archivo HTML separado para cada template sencillo. Podrías simplificar definiendo el template directamente en el componente mediante la propiedad template
en lugar de templateUrl
. Pese a esta opción, si el template requiere una lógica compleja, es preferible tenerlo en un archivo separado. Esto ayuda a mantener el código limpio y fácil de gestionar.
¿Cómo puedo reducir el tamaño del app.component?
El app.component
puede volverse muy liviano si optas por eliminar un archivo CSS dedicado y eventuales archivos HTML innecesarios, siempre que contengas la lógica necesaria dentro del componente:
- Eliminación de archivos innecesarios: Cuando todos los estilos globales están consolidados en un único archivo
styles.css
, el archivo CSS propio del app.component puede ser redundante y removido. - Simplificación del template: Si tienes un template mínimo, defínelo directamente en el componente para evitar archivos extra.
Con estas acciones, reduces la complejidad y mejoras el rendimiento de tu aplicación a medida que crece.