Introducción
Angular ha evolucionado significativamente a lo largo de los años para simplificar el proceso de desarrollo y mejorar la experiencia de los programadores. Uno de los cambios más importantes introducidos en las versiones recientes es la posibilidad de crear aplicaciones sin necesidad de utilizar NgModules, también conocidos como módulos de Angular.
Esta nueva forma de trabajo permite desarrollar aplicaciones más simples, fáciles de entender y con menos configuraciones innecesarias.
¿Qué eran los NgModules?
Durante muchos años, los NgModules constituyeron la base de cualquier aplicación Angular. Un módulo era una estructura encargada de organizar y registrar los distintos elementos que formaban parte de la aplicación.
Dentro de un módulo se declaraban elementos como:
Componentes.
Directivas.
Pipes.
Servicios.
Dependencias externas.
Por ejemplo, al crear un nuevo componente era necesario realizar dos pasos:
Crear el componente.
Registrarlo en un NgModule para que Angular pudiera utilizarlo.
Aunque herramientas como Angular CLI automatizaban gran parte de este proceso, los desarrolladores seguían dependiendo de los módulos para organizar y configurar sus aplicaciones.
Limitaciones de los NgModules
Si bien los módulos permitían estructurar aplicaciones grandes, también añadían cierta complejidad al desarrollo.
Entre las situaciones más comunes se encontraban:
Tener que declarar manualmente los componentes en un módulo.
Configurar importaciones adicionales para utilizar determinadas funcionalidades.
Navegar entre componentes y módulos para comprender cómo estaba organizada la aplicación.
Incrementar la cantidad de archivos y configuraciones necesarias.
En proyectos grandes, esta dependencia de los módulos podía dificultar la comprensión de la estructura de la aplicación, especialmente para nuevos integrantes del equipo.
La llegada de los Componentes Standalone
Para simplificar el desarrollo, Angular introdujo el concepto de Standalone Components o componentes independientes.
Un componente standalone puede declarar directamente las funcionalidades que necesita sin depender obligatoriamente de un NgModule.
Esto significa que el propio componente puede gestionar sus dependencias, haciendo que el código sea más explícito y fácil de mantener.
Ventajas de los componentes standalone
Trabajar con componentes independientes ofrece varios beneficios:
Menor complejidad en la configuración del proyecto.
Reducción de archivos de configuración.
Mayor claridad sobre las dependencias de cada componente.
Mejor experiencia para nuevos desarrolladores.
Facilita la organización y mantenimiento de la aplicación.
Simplifica la creación de aplicaciones modernas.
En lugar de buscar en distintos módulos para entender de qué depende un componente, la información relevante se encuentra directamente en el propio componente.
¿Han desaparecido los NgModules?
No. Angular continúa ofreciendo soporte para aplicaciones basadas en NgModules.
Esto significa que:
Las aplicaciones existentes siguen funcionando.
Es posible crear nuevos proyectos utilizando módulos si se desea.
Angular mantiene compatibilidad con ambos enfoques.
Sin embargo, el enfoque recomendado para los nuevos desarrollos es el uso de componentes standalone, ya que representan la dirección hacia la que evoluciona la plataforma.
Enfoque utilizado en este curso
A lo largo de este curso trabajaremos utilizando el enfoque moderno de Angular basado en Standalone Components.
Esto nos permitirá:
Aprovechar las características más recientes de Angular.
Reducir la complejidad de configuración.
Construir aplicaciones más limpias y fáciles de entender.
Aprender las prácticas actualmente recomendadas por la comunidad Angular.
Resumen
Tradicionalmente, Angular dependía de los NgModules como elemento central para organizar una aplicación. Aunque esta arquitectura fue efectiva durante muchos años, también introducía configuraciones adicionales que podían dificultar el mantenimiento y la comprensión del proyecto.
Con la llegada de los Standalone Components, Angular ofrece una alternativa más simple y moderna que reduce la necesidad de utilizar módulos y facilita el desarrollo de aplicaciones. Por esta razón, en este curso se utilizará el enfoque standalone, alineado con las mejores prácticas actuales de Angular.