Angular 4 è la prima major release del noto framework JavaScript rilasciata dopo l'introduzione del semantic versioning nell'evoluzione del progetto, un approccio pensato anche per garantire un elevato livello di retrocompatibilità con le applicazioni sviluppate utilizzando la versione 2.x.x. Per la realizzazione di questo aggiornamento ci si è concentrati in particolare sul miglioramento delle performance, ma non mancano alcune interessanti feature addizionali.
View Engine e dimensioni dei componenti
Alcuni degli interventi più rilevanti hanno coinvolto il View Engine, con l'obbiettivo di ridurre sensibilmente le dimensioni del codice generato per i componenti; in alcuni casi sarebbe stata registrata una riduzione vicina al 60% rispetto a quanto si sarebbe potuto ottenere in precedenza. Uno dei vantaggi derivanti da questa nuova impostazione risiede nel fatto che più complesso sarà il template utilizzato maggiore sarà il decremento ottenibile.
Eventuali migrazioni verso la versione 4 potrebbero quindi portare ad un risparmio calcolabile in termini di centinaia di Kb con effetti estremamente positivi sulle performance.
Template binding
Gli sviluppatori hanno ora la possibilità di utilizzare una sintassi nello stile dei costrutti condizionali (if/else
) e assegnare variabili locali agendo sulle direttive *ngIf
e *ngFor
:
<div *ngIf="userList | async as users; else loading">
<user-profile *ngFor="let user of users; count as count" [user]="user">
</user-profile>
<div>{{count}} total users</div>
</div>
<ng-template #loading>Loading...</ng-template>
Gestione dell'Animation Package
Un'altra novità particolarmente interessante per le prestazioni riguarda la rimozione del supporto per le animazioni dall'@angular/core
e il suo spostamento in un package dedicato. In questo modo, nel caso in cui un progetto non utilizzi le animazioni, esse non peseranno sull'applicazione in fase di produzione; se le si vuole utilizzare sarà comunque possibile ricorrere all'inclusione nel main NgModule tramite importazione.
Universal: Angular su server
Angular Universal, cioè il progetto con cui si vuole permettere agli sviluppatori di eseguire il framework su server, non è più sviluppato dalla sola community che ruota intorno ad Angular ma viene implementato direttamente dal suo stesso team e verrà aggiornato insieme al core della libreria.
Compatibilità
Angular 4 supporta delle versioni di TypeScript più recenti (release 2.1 e 2.2), ciò dovrebbe permettere di ottenere una maggiore velocità per ngc
e un maggiore efficienza del type checking. Introdotta in via sperimentale anche la compatibilità con le Closure annotation per un livello di ottimizzazione più elevato e una riduzione del peso dei bundle.
Via Angular