Introducción
Angular es un framework de cliente de código abierto, desarrollado principalmente por Google. Está programado en TypeScript y requiere de dicho lenguaje para desarrollar aplicaciones con este framework. Está especialmente orientado para construir grandes aplicaciones, pero también para pequeños proyectos.
Algunas de las principales características de Angular son:
- Con Angular, construimos Aplicaciones de Página Única (SPA), donde la página principal se carga solo una vez y el contenido se actualiza dinámicamente.
- Hace que nuestro código HTML sea más expresivo al utilizar interpolación, vinculación de atributos, directivas, estructuras de control, etc.
- Es modular por diseño. Solo incluiremos lo que necesitamos del framework en un momento dado. También permite diseñar nuestra aplicación de manera modular, de modo que el navegador solo necesitará cargar parte de ella (Carga Diferida) y hacer que la carga inicial sea más rápida.
- Permite construir componentes web reutilizables en otras aplicaciones.
- Facilita la integración de nuestra aplicación con el backend (servidor), sobre todo con APIs de servicios web.
- Renderizado en el lado del servidor con Server Side Rendering (SSR). Esta es una característica muy útil para generar contenido en el servidor para motores de búsqueda que no comprenden Angular. El servidor ejecuta Angular y devuelve el HTML inicial renderizado. Después, si el cliente soporta JavaScript, Angular toma el control sobre la aplicación.
- Se integra con varias herramientas de depuración de código. Complementos de Chrome como Angular DevTools y herramientas de testing como Karma o Jasmine. Además, al usar TypeScript, facilita mucho la detección de errores temprana.
- Integración con frameworks de diseño como Bootstrap (ngBootstrap), Angular Material (Google Material Design), Taiga UI, o Ionic, entre otros.
Además, es un framework que se ha ido adaptando a los nuevos paradigmas y requisitos de los desarrolladores, incorporando características como:
- Componentes standalone: Permiten crear aplicaciones más simples sin necesidad de crear módulos.
- Nuevas estructuras de control: Sustituyen a las directivas clásicas como ngIf, ngFor, etc facilitando la legibilidad del código
- Signals: Permiten gestionar el cambio de estado en los datos (reactividad) de una forma más simple (y eficiente) que con el uso de observables. Sobre todo en situaciones poco complejas.