Novedades de Angular 8

Las siguientes son las versiones semánticas de angular:

Versión major: se esperan cambios que puedan romper antiguas versiones y es probable que se requieran de ciertos pasos (manuales o automáticos) para actualizar la aplicación.

Versión minor: se pueden introducir pequeñas novedades pero siempre con retrocompatibilidad con versiones anteriores.

Versión patch: básicamente introducen soluciones a bugs conocidos.

Esta versión se ha eliminado definitivamente la primera versión del componente para comunicaciones denominado @angular/http, que estaba marcado como obsoleto pero ahora ya no existe. Además, para poder utilizar @ViewChild y @ContentChild ahora es necesario un parámetro adicional que no se solicitaba en las  versiones anteriores. Pero, quitando estos dos «breaking changes», como podrás ver a continuación los cambios introducidos son más bien pocos aunque muy interesantes y  centrados sobre todo en la mejora de rendimiento.

 

Carga diferencial

En mi opinión, el cambio más importante que recibe Angular en esta versión quizás sea la Carga Diferencial o «Differential Loading». Esta característica le permite a Angular compilar dos tipos de paquetes o «bundles» y, dependiendo de la versión del navegador que se esté utilizando, servirle uno u otro paquete sirviéndose de la tecnología ES6 Modules.

El principal beneficio de esto es que puedes seguir dando soporte a versiones antiguas de navegadores mientras que en las nuevas versiones puedes entregar una aplicación más liviana y menos compleja del código, ya que no tienes que adaptar funcionalidades no soportadas por el navegador antiguo ni incluir polyfills tampoco.

El resultado práctico final de estas mejoras es una reducción del tamaño de la aplicación, según el equipo de Angular entre un 7% y un 20%, dependiendo de las funcionalidades que se usen en el proyecto.

Novedades en la API de Angular CLI

A partir de ahora si estás construyendo una librería para Angular con la versión 8, podrás extender los hooks de ng build, ng test y ng run.

 

Cambios en el Lazy loading

También llamada carga diferida, ésta característica la utilizamos con el fin de reducir el tamaño inicial de tu aplicación y aumentar la velocidad de carga inicial.

La forma de hacerlo a partir de ahora cambia un poco con el fin de que sea un poco más estándar y se adecúe a lo que se hace en la industria como un estándar informal.

Por ejemplo, antes tenías:

{
 path: '/dashboard,
 loadChildren: './dashboard/dashboard.module#DashboardModule'
}

A partir de la versión 8 lo harás con una Promise:


{
 path: `/dashboard`,
 loadChildren: () => import(`./dashboard/dashboard.module`).then(m => m.DashboardModule)
}

Deja un Comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *