Últimas mejoras en Angular 17: todo lo que necesitas saber

Publicado: 2024-03-30

Según una investigación realizada por Statista, Angular es el marco de desarrollo web más utilizado, aprovechado por el 17,46% de los encuestados [i] . Para mantener esta posición, mejorar el rendimiento y simplificar la codificación, el equipo de Angular lanzó su nueva versión: Angular 17 el 11 de septiembre de 2023.

El marco Angular renovado está guiado por la visión de Sarah Drashner, directora de ingeniería de Google y jefa del equipo Angular. Aporta mejoras incrementales, lo que garantiza la compatibilidad con versiones anteriores y, al mismo tiempo, se alinea con las últimas tendencias en marcos de front-end.

Con Angular 17, las empresas y los desarrolladores pueden imaginar una experiencia de desarrollo mejorada. Aquí, la nueva sintaxis de flujo de control, la compatibilidad mejorada con la representación del lado del servidor (SSR), una CLI turboalimentada por esbuild y otras actualizaciones contribuyen a un flujo de trabajo de desarrollo más fluido y dinámico.

En esta publicación de blog, puede decodificar las nuevas mejoras y actualizaciones en el marco de desarrollo web Angular 17. También comprenderá por qué los desarrolladores deberían aprovecharlo, facilitando la colaboración, fomentando la reutilización del código y garantizando la creación de aplicaciones web escalables y mantenibles.

¡Vamos a empezar!

Características clave y mejoras en Angular 17

Últimas mejoras en Angular 17: todo lo que necesitas saber

1. Documentación orientada al futuro

Angular 17 introduce una mejora significativa en su documentación con el desarrollo de un nuevo hogar en angular.dev. Esta revisión incluye una estructura renovada, guías actualizadas, contenido enriquecido y una plataforma de vanguardia que fomenta un viaje de aprendizaje interactivo para Angular y Angular Command Line Interface (CLI).

La vista previa beta de angular.dev marca el comienzo de una nueva era, con planes para convertirlo en el sitio web predeterminado para Angular en la versión 18. Lo más destacado incorpora WebContainers, que permite a los usuarios aprovechar el poder de Angular CLI directamente dentro de un navegador web moderno. Esto promete además una experiencia de documentación inmersiva y de futuro.

2. Flujo de control incorporado

En Angular 17, una mejora notable es la introducción de una nueva sintaxis de bloque de control, que reemplaza las directivas estructurales tradicionales como *ngIf, *ngFor y *ngSwitch. Esta evolución proporciona a los desarrolladores una mayor flexibilidad y una legibilidad mejorada en el código de la plantilla.

Por ejemplo, los bloques @if y @else proporcionan una forma más limpia de representar contenido condicionalmente, utilizando expresiones lógicas. El bloque @for simplifica la iteración sobre colecciones, lo que permite un código más expresivo y conciso. Además, los bloques @switch, @case y @default facilitan un flujo de control eficiente, mejorando el manejo de múltiples condiciones.

Para adoptar estas mejoras, los desarrolladores pueden migrar las plantillas existentes utilizando el esquema proporcionado. Esto conducirá a un enfoque más moderno y optimizado para el desarrollo de plantillas en Angular 17.

3. Bucle @for incorporado

La función de bucle @for incorporada en Angular 17 representa una mejora significativa tanto en la experiencia del desarrollador como en la velocidad de renderizado. Esta sintaxis aborda un cuello de botella de rendimiento común que se observa en aplicaciones que dependen de *ngFor al exigir el uso de "seguimiento" para una detección eficiente de cambios. También garantiza un proceso de renderizado más rápido.

A diferencia de su predecesor, la funcionalidad "pista" se incorpora perfectamente como una expresión dentro de la plantilla, eliminando la necesidad de un método adicional en la clase del componente. En particular, el bucle @for incorporado también proporciona un atajo conveniente para manejar colecciones sin elementos a través de un bloque @empty opcional. Esta característica no solo agiliza el desarrollo sino que también mejora significativamente el rendimiento de las aplicaciones Angular, lo que marca un hito notable en la evolución del marco.

4. Vistas aplazables

En Angular 17, se introdujo una mejora significativa llamada Vistas diferibles en respuesta a la solicitud de la comunidad Angular de un mecanismo intuitivo para cargar componentes, directivas y canalizaciones de forma diferida.

Esta nueva característica tiene como objetivo hacer que el proceso de carga diferida de dependencias sea más intuitivo y conveniente. Las vistas diferibles permiten a los desarrolladores cargar de forma declarativa partes de sus plantillas hasta que sean necesarias, optimizando el tamaño del paquete inicial y mejorando el tiempo de carga inicial de la aplicación. Esto se logra mediante el uso de la nueva sintaxis de flujo de control “@-syntax” en las plantillas.

Como las vistas diferibles brindan soluciones integradas y administradas para la carga diferida, los desarrolladores pueden expresar su intención sin administrar importaciones dinámicas detalladas, observadores de intersecciones o controladores de eventos. Esta característica también admite la captación previa para una disponibilidad de recursos más rápida.

Además, los desarrolladores pueden utilizar activadores integrados y condiciones personalizadas para especificar cuándo y cómo debe ocurrir la carga diferida. Además, las vistas diferibles reducen el código repetitivo y manejan automáticamente la gestión de dependencias entre bastidores.

5. Representación mejorada del lado del servidor (SSR)

Las capacidades de renderizado del lado del servidor de Angular 17 permiten a los desarrolladores elevar el rendimiento de las aplicaciones y la experiencia del usuario. La función Hydration Boost agiliza el proceso de hidratación de JavaScript del lado del cliente, minimizando el parpadeo y garantizando una transición más fluida a páginas web interactivas.

Angular 17 también adopta el formato estandarizado de Módulos EcmaScript (ESM) para SSR, simplificando las compilaciones y mejorando la compatibilidad con herramientas populares. Además, se centra en reducir el tamaño de los paquetes SSR mediante técnicas de división de código, lo que genera respuestas más rápidas del servidor y una optimización mejorada del motor de búsqueda. Estos avances posicionan a Angular 17 como una opción convincente para crear aplicaciones web de alto rendimiento y compatibles con SEO.

6. Señal estable

Angular 17 presenta un desarrollo innovador con la estabilización de señales, una herramienta fundamental para los entusiastas de la reactividad. Al deshacerse de su etiqueta de "vista previa del desarrollador", Signals ahora se presenta como una solución sólida para administrar el estado y facilitar las actualizaciones de componentes.

La integración de Señales con Detección de Cambios.OnPush aporta un nivel de precisión. Esto garantiza que los componentes se actualicen solo cuando cambie su señal específica, optimizando el rendimiento al evitar rerenderizaciones innecesarias. El retiro del método mutado en favor de actualizaciones inmutables mejora aún más la previsibilidad y la limpieza en el mantenimiento de la historia del estado. Mientras Signals ocupa el centro de atención, Effects, aún en la vista previa para desarrolladores, ofrece una visión del futuro de la gestión del estado de Angular, presentando poderosas capacidades para operaciones asincrónicas.

En esencia, Angular 17 equipa a los desarrolladores con un conjunto de herramientas refinado, que incluye señales estables, integración OnPush, actualizaciones inmutables y el potencial en evolución de los efectos. En última instancia, esto fomenta la creación de aplicaciones bien estructuradas.

7. Desarrollo del rendimiento con esbuild

La adopción de esbuild en Angular 17 marca un paso significativo en la mejora del rendimiento de la construcción para proyectos Angular. Angular CLI, que originalmente dependía de Webpack, ha pasado a aprovechar esbuild, una herramienta más nueva celebrada por su naturaleza fácil de usar y su notable velocidad, que cuenta con más de 20.000 descargas semanales.

La integración de esbuild se implementó en Angular 16 como una vista previa para desarrolladores y ahora ha madurado hasta convertirse en una implementación estable en Angular 17. Esta integración se ha convertido en el generador predeterminado para nuevos proyectos a través del Generador de aplicaciones. Para proyectos existentes, se anima a los desarrolladores a considerar el cambio a esbuild actualizando la entrada del constructor en angular.json.

Con esta integración, tanto las operaciones de ng server como las de ng build muestran un aumento sustancial en la velocidad, aprovechando el servidor de desarrollo Vite para la creación eficiente de paquetes npm solo cuando es necesario. La incorporación por parte del equipo CLI de varias optimizaciones de rendimiento contribuye aún más a un proceso de construcción acelerado, y ng build a menudo logra una mejora de velocidad de factor 2 a 4. Esta transición subraya el compromiso de Angular de proporcionar a los desarrolladores herramientas que no solo simplifiquen los flujos de trabajo, sino que también mejoren significativamente la eficiencia de la construcción de proyectos.

8. Componentes independientes

Los "componentes independientes" son una característica innovadora en Angular 17 que permite la creación y utilización de componentes sin la necesidad de un módulo principal. En este cambio de paradigma, el componente raíz, ejemplificado por "AppComponent", se marca como independiente utilizando la propiedad "standalone: ​​true" en el decorador de componentes. Este atributo significa que el componente funciona independientemente de un módulo principal. Además, en lugar de depender de un módulo, el componente utiliza la matriz de "importaciones" para incorporar las dependencias necesarias, como el módulo de enrutador.

Luego se emplea la función "bootstrapApplication" para iniciar la aplicación, lo que demuestra una desviación del enfoque tradicional centrado en NgModule. La nueva flexibilidad de los componentes independientes facilita un estilo de desarrollo modular y encapsulado, lo que muestra el compromiso de Angular con la evolución y mejora de la arquitectura de componentes.

¿Cómo migrar a Angular 17?

Para actualizar su aplicación Angular existente a la versión 17, siga estos pasos:

  • Primero, actualice globalmente su Angular CLI a la versión 17 usando el comando 'npm install -g @angular/cli@17'.
  • A continuación, actualice sus paquetes principales de Angular ejecutando 'ng update @angular/core'.
  • Si usa paquetes de Angular adicionales, actualícelos individualmente, usando código, como 'ng update @angular/material' para Angular Material.
  • Luego, pruebe minuciosamente su aplicación para asegurarse de que funcione como se espera después de las actualizaciones.

Algunos consejos que puede seguir aquí incluyen actualizar a versiones menores entre actualizaciones importantes, hacer una copia de seguridad de su código y base de datos antes de la actualización y verificar la compatibilidad de bibliotecas de terceros. También debe consultar la documentación de Angular y los foros de la comunidad para obtener ayuda si surgen problemas durante el proceso de actualización. Estos pasos simplificados garantizarán una transición sin problemas a la última versión de Angular y al mismo tiempo minimizarán los desafíos potenciales.

¿Listo para crear aplicaciones robustas, ricas en funciones y modernas con Angular? ¡Hable con nuestros expertos!

Nuestros expertos en Angular son expertos en la creación de soluciones web de alto rendimiento, aplicaciones de una sola página y aplicaciones web progresivas. Si desea obtener más información sobre nuestra destreza en el desarrollo de Angular, escríbanos a [email protected] y nos encargaremos de ello.

Referencias:

[i] Estatista