Angular (communément appelé « Angular 2+ » ou « Angular v2 et plus »)[2],[3] est unframework pour clients,open source, basé surTypeScript et codirigé par l'équipe du projet « Angular » chezGoogle ainsi que par une communauté de particuliers et de sociétés. Angular est une réécriture complète d'AngularJS,cadriciel construit par la même équipe. Il permet la création d’applications Web et plus particulièrement d'applications Web monopages : des applications Web accessibles via unepage Web unique qui permet de fluidifier l’expérience utilisateur et d’éviter les chargements de pages à chaque nouvelle action. Leframework est basé sur une architecture du typeMVC et permet donc de séparer les données, le visuel et les actions pour une meilleure gestion des responsabilités. Un type d’architecture qui a largement fait ses preuves[réf. nécessaire] et qui permet une forte maintenabilité et une amélioration du travail collaboratif.
L'Architecture de l'Angulaire de l'application. Les principaux blocs de construction sont des modules, des composants, des modèles, des métadonnées, la liaison de données, des directives, des services et de l'injection de dépendance.
Angular n'a pas de notion de « portée » (scope) ou de contrôleurs ; au lieu de cela, il utilise une hiérarchie de composants comme principale caractéristique architecturale[4]
Angular a une syntaxe d'expression différente, en se concentrant sur les"[ ]" pour la liaison despropriétés, et les"( )" pour la liaison des évènements[5]
Modularité – beaucoup de fonctionnalités de base ont été déplacées vers des modules
Angular recommande l'utilisation du langageTypeScript, créé par Microsoft, qui présente les caractéristiques suivantes :
TypeScript est un sur-ensemble d'ECMAScript 6 (ES6) et estrétrocompatible avecECMAScript 5 (c'est-à-dire JavaScript). Angular comprend également les principes d'ES6 suivants :
Les rappels itératif fournis par RxJS. RxJS limite l'état de visibilité et de débogage mais ces problèmes peuvent être résolus avec add-ons réactifs comme ngReact ou ngrx.
À l'origine, la réécriture d'AngularJS avait été appelée « Angular 2 » par l'équipe mais cela avait conduit à des confusions entre les développeurs. Pour clarifier, l'équipe a annoncé que des termes différents allaient être utilisés pour chaqueframework. « AngularJS », se référant aux versions 1.X, et « Angular » (sans le « JS »), en référence aux versions 2 et plus[6].
Angular 2.0 est annoncé à la conférence ng-europe 2014, qui s'est déroulée les 22 et de cette même année[7],[8]. Les changements drastiques dans la version 2.0 ont créé beaucoup de controverses parmi les développeurs[9]. Le, les développeurs d'Angular annoncent que la version 2 passe de laversion alpha à la version d'essai pour les développeurs[10]. Angular 2 passe enversion bêta en[11] et la première version candidate à la production est publiée en[12]. La version finale est publiée le.
Le, Angular 4 a été annoncé ; le saut de la version 3 étant fait pour éviter une confusion en raison de l'absence d'alignement de la version durouteur qui avait déjà été distribuée en v3.3.0[13]. La version finale a été publiée le[14]. Angular 4 est compatible avec Angular 2[15].
Angular 4.3 est une version mineure, ce qui signifie qu'il ne contient pas de modifications importantes et que c'est un remplacement direct pour les versions 4.x.x.
Fonctionnalités de la version 4.3 :
Introduction deHttpClient, bibliothèque plus petite, plus facile à utiliser et plus puissante pour faire des requêtes HTTP ;
Nouveaux évènementsdu cycle de vie du routeur pour les Gardes et les Résolveurs. Quatre nouveaux évènements :GuardsCheckStart,GuardsCheckEnd,ResolveStart,ResolveEnd rejoignent l'ensemble des évènements de cycle de vie tels que NavigationStart ;
Angular 6 est sorti le[18]. C'est une version majeure permettant de moins mettre l'accent sur le cadre sous-jacent, de plus en plus sur la suite d'outils et de rendre plus facile le passage à Angular dans le futur, avec :
View Engine a été supprimé du mode de compilation au profit d'Ivy. Un avertissement est affiché pour les bibliothèques encore sous View Engine (Angular 12 et moins).
Cette version introduit un mécanisme de flux de contrôle déclaratif.
On notera par ailleurs que la construction des exécutables (build) a été améliorée : elle se déroule plus rapidement et apporte des gains de performance[27]
De plus, la documentation a été revue.
Mise en place d'une nouvelle syntaxe pour les templates. Par exemple :
<ng-container*ngFor="let item of list"><div*ngIf="condition; else elseTemplate"> A</div><ng-template#elseTemplate><div> B</div></ng-template></ng-container>
Toutes les versions majeures bénéficient d'une assistance pendant 18 mois. Il s'agit de 6 mois de support actif, au cours desquels des mises à jour et des correctifs sont publiés à intervalles réguliers. Elle est suivie de 12 mois de support à long terme (LTS), au cours desquels seuls les correctifs critiques et les correctifs de sécurité sont publiés[28].