Angular is developed by Google and is one of the widely used JavaScript frameworks which help developers to build web applications by using HTML as a template language.
Angular’s data binding and dependency injection eliminate much of the code which you could otherwise have to write manually, which may result in a tedious task. In order to deliver the latest features, Google has been updating Angular consistently to make it lightweight, fast, and easy to use.
In November 2017, Google released Angular 5.0 with a number of features and bug fixes. The core focus of this update is to simplify app development, code sharing, code compilation time, etc.
The new release of Angular 5 comes with the Build Optimizer tool which makes the framework smaller, faster, and easier to use. Build Optimizer is run by default when production builds are created with CLI (Command line interface) and decreases the size of JavaScript. Basically, Build Optimizer has 2 main roles i.e. it:-
These jobs can enhance the boot speed of your application and lessen the size of JavaScript bundles.
The improvements were also made in the compiler to provide faster rebuilds for both productions builds and AOT builds. The previous version was a bit slow and a small change in a template needed full compilation. This updated version has a ‘pipeline transformer’ which has the ability of a TypeScript compiler that only compiles what is necessary with a new watch mode.
Features were added to the decorators which made it possible to create smaller bundles by removing whitespaces. The new compiler saves 95% of the build time when performing an incremental AOT build.
You can take advantage by using, ng serve –aot
The new feature of Angular 5 supports decorators like use-value, use factory, and data in object literals. These decorators help to use the values that are calculated at runtime. Rather than using the name function, NULL can be used, so that it can execute the code without affecting the public API.
Component({
provider: [{provide: ‘token’, useValue: calculated()}]
})
export class MyClass {}
Component({
provider: [{provide: ‘token’, useFactory: () => null}]
})
export class MyClass {}
HTTP client came into existence in version 4.3; angular/HTTP was used for making smaller, simpler, and more powerful HTTP web requests in an angular application. Now in version 5, the angular team recommends using an HTTP client for all applications.
To update HTTP Client, replace Http Module with Http ClientModule from @angular/common/http in each of the modules, inject the HttpClient service, and eliminate any map(res => res.json()) calls, which are no longer required.
In Angular 5, sharing code between the client-side and server-side versions of the application has become much easier. Angular Universal was introduced to provide support for the developers in order to perform server-side rendering of Angular applications.
Furthermore, two modules like ServerTransferStateModule and BrowserTransferStateModule were added which help to generate information on the platform server and then transfer information to the client side to avoid regeneration of the same information. This is useful when an application fetches data over HTTP!
By transferring state from the server, angular developers can refrain from making another HTTP request, once the application makes it to the client.
Furthermore, Domino is added to the platform-server; this means that Angular 5 supports DOM-based manipulations within server-side contexts and also supports third-party JavaScript and Component libraries.
The latest update of Angular 5 includes number, date, and currency pipes which enhanced standardization across browsers and eliminated the need for i18n polyfills. Apart from this, the pipe has been updated to provide extensive locale support and configurations for any locales relying on the CLDR.
If you do not want to use this new pipe, you can import the module DeprecatedI18NPipesModuleto after the CommonModule to access the previous behavior.
import { NgModule } from ‘@angular/core’;
import { CommonModule, DeprecatedI18NPipesModule } from ‘@angular/common;
Angular 5 includes lifecycle events that enable developers to track router cycles from the beginning of running guards until the completion of activation. The new events of the router lifecycle are:-
Above mentioned events can be used to have more control of your application.
In Angular 5, forms can run validation and value updates using ‘on blur’ or ‘on submit’ rather than on every input event.
<input name=“lastname” ngModel [ngModelOptions]=“{updateOn: ‘blur’}”>
If you have any server-side validation or any heavy process triggered by validation or any value changes that are not run often; with this form validation in the new update, you can take control of the validation and value change timing at the control level or specify it for a complete form.
Moreover, ‘asyncValidators’ can be specified in an options object, instead of declaring it as a third parameter.
Angular 5 is smaller and faster and is loaded with significant features and great improvements. This update has very useful tools which will make your application faster and fully optimized. Angular update guide will help the development teams to learn more about Angular updates.
The team of Angular is very active; although they came up with Angular 5 in November 2017, major bug fixes in versions Angular 5.1 and Angular 5.2 were out soon after the release.
Well… the story doesn’t end up here… Angular 6 is about to release soon providing easier, smaller, and quicker web development services.
Looking to build your next project in Angular 5? Connect with us today!