| Développé par | Google et la communauté Angular. |
|---|---|
| Première version | |
| Dernière version | 21.0.0 ()[1] |
| Dépôt | github.com/angular/angular |
| Assurance qualité | Intégration continue |
| Écrit en | TypeScript, JavaScript |
| Système d'exploitation | Multiplateforme (d) |
| Type | Framework JavaScript |
| Licence | Licence MIT |
| Site web | angular.dev |
Chronologie des versions
Angular (également appelé Angular 2+ pour le distinguer de son prédécesseur AngularJS)[2],[3] est un framework pour clients, open source, basé sur TypeScript et codirigé par l'équipe du projet « Angular » chez Google ainsi que par une communauté de particuliers et de sociétés. Angular est une réécriture complète d'AngularJS. Il permet la création d’applications Web et plus particulièrement d'applications Web monopages : des applications Web accessibles via une page Web unique qui permet de fluidifier l’expérience utilisateur et d’éviter les chargements de pages à chaque nouvelle action. Le framework est basé sur une architecture du type MVC et permet donc de séparer les données, le visuel et les actions pour une meilleure gestion des responsabilités. Selon l'enquête Stack Overflow auprès des développeurs, Angular est l'un des frameworks web les plus utilisés[4].
Différences avec AngularJS

Angular est une réécriture complète d'AngularJS. Contrairement à AngularJS, 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[5]. Angular a une syntaxe d'expression différente, en se concentrant sur les "[ ]" pour la liaison des propriétés, et les "( )" pour la liaison des évènements[6]. Angular recommande l'utilisation du langage TypeScript, créé par Microsoft, qui introduit des fonctionnalités telles que le typage statique, les génériques et les annotations de type.
Caractéristiques principales
Composants
L'architecture est basée sur des composants, ce qui encourage un meilleur découplage de l'application et permet la réutilisation d'éléments d'interface. Chaque composant encapsule son propre code HTML (la vue), son CSS (le style) et sa logique métier (le code en TypeScript), ce qui facilite la gestion et le test des différentes parties d'une application[7].
Voici un exemple de composant:
@Component({
selector: 'app-simple',
template: `<h1>Bienvenue sur notre application!</h1>`,
styles: `h1 { color: red; }`
})
export class SimpleComponent {
// La logique du composant peut être ajoutée ici
}
Data binding
Le data binding facilite la synchronisation des données entre le modèle et la vue. Avec Angular, il peut être bidirectionnel[8].
Voici un exemple de data binding bidirectionnel avec un formulaire permettant de modifier le nom affiché:
@Component({
template: `
<input type="text" [(ngModel)]="name" />
<p>Mon nom est {{ name }}</p>
`
})
export class AppComponent {
name = 'Emeline';
}
Injection de dépendance
L'injection de dépendances permet de gérer les dépendances entre les différents composants de l’application. Elle facilite le partage de code entre les composants[9].
Directives
Les directives étendent le HTML avec de nouvelles fonctionnalités spécifiques à l'application[10].
Routeur
Un routeur permet de naviguer entre les différentes vues de l’application. Il est possible par exemple de changer de vue en cliquant sur un lien[11].
Server-Side Rendering (SSR)
Le Server-Side Rendering consiste à générer le contenu de l'application côté serveur, puis à l'envoyer au navigateur. Angular permet de le mettre en place depuis la version 17. Les avantages sont un meilleur référencement du site et un chargement initial plus rapide[12].
Signal
Introduit avec Angular 16, Angular a repris le principe de signal déjà utilisé par d'autres frameworks, comme SolidJS ou Vue. L'objectif est d'améliorer les performances de détection des changements tout en simplifiant l'utilisation[13].
Historique
Nom
À 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 décidé d'utiliser des termes différents pour chaque framework: « AngularJS », pour les versions 1.X, basées sur JavaScript, et « Angular » (sans le « JS »), pour les versions 2 et suivantes[14].
Version 2
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[15],[16]. Les changements drastiques dans la version 2.0 ont créé beaucoup de controverses parmi les développeurs[17]. Le , les développeurs d'Angular annoncent que la version 2 passe de la version alpha à la version d'essai pour les développeurs[18]. Angular 2 passe en version bêta en [19] et la première version candidate à la production est publiée en [20]. La version finale est publiée le .
Version 4
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 du routeur qui avait déjà été distribuée en v3.3.0[21]. La version finale a été publiée le [22]. Angular 4 est compatible avec Angular 2[23].
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 de HttpClient, bibliothèque plus petite, plus facile à utiliser et plus puissante pour faire des requêtes HTTP ;
- Nouveaux évènements du 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 ;
- Désactivation conditionnelle des animations.
Version 5
Angular 5 est sorti le [24]. Des améliorations-clés dans Angular 5 incluent le soutien des applications web progressives, un optimiseur de production et des améliorations liées à Material Design[25].
Version 6
Angular 6 est sorti le [26]. Il s'agit d'une version majeure qui se concentre moins sur le framework sous-jacent et davantage sur la suite d'outils :
- ng update,
- ng add,
- Angular Elements,
- Angular Material + CDK Components,
- Angular Material Starter Components,
- CLI Workspaces,
- Library Support,
- Tree Shakable Providers,
- Animations Performance Improvements,
- RxJS v6.
Version 7
Angular 7 a été publié le [27]. Cette version ne présente que peu de nouveautés. L'interface en ligne de commande (CLI) a toutefois été améliorée. Angular Material prend désormais en charge le défilement virtuel et le glisser-déposer. Angular 7 est également plus rapide que les versions précédentes[28].
Version 8
Angular 8 est sorti le [29]. Cette version intègre partiellement un nouveau compilateur: Ivy. Elle offre également un meilleur support des Web Workers. Le JavaScript est chargé plus rapidement sur les navigateurs modernes. La migration depuis AngularJS est également facilitée[30].
Version 9
Angular 9 est sorti le [31].
- Mise en place du moteur de rendu Ivy par défaut, pour la compilation et le runtime.
- Des méthodes de test des composants, améliorées, sont introduites.
Version 10
Angular 10 est sorti le [32].
- Angular Material inclut désormais un nouveau sélecteur de plage de dates
- Un mode "strict" lors de la création d'un nouveau projet avec "ng new"
- Angular a été allégé des bundles ESM5 ou FESM5 (moins de téléchargement)
Version 11
Angular 11 est sorti le [33]. Les points essentiels sont des améliorations de performance (sur l'intégration des polices), une amélioration pour le développement et le cycle de construction des applications avec par exemple la prise en charge de TypeScript 4.0[34].
Version 12
Angular 12 est sorti le .
- IE 11 est déprécié.
- View Engine est déprécié ; Ivy devient le moteur de rendu par défaut.
- Le mode strict est activé par défaut[35].
Version 13
Angular 13 est sorti le [36].
- Suppression du support d'IE 11.
- 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).
- Cache de build persistant, pour améliorer le temps de build
Version 14
Angular 14 est sorti le [37].
- Amélioration du support des micro-frontends
- Mise en place des composants autonomes (standalone) sans ngModule.
- La validation des formulaires est maintenant typable.
Version 15
Angular 15 est sorti le et apporte les nouveautés suivantes[38]:
- L'API Standalone est désormais stable.
- Une directive image, pour un chargement amélioré des images.
- Les composants Material ont été migrés vers la base MDC (Material Design Components).
- Une API de composition de directives[39].
Version 16
Angular 16 est sorti le .
Cette version introduit, en aperçu développeur :
- Une refonte du système de réactivité : Angular Signals[40].
- Un nouveau système de construction des exécutables (builder) basée sur esbuild et intégrant Vite[40].
Cette version fournit également :
- Un script de migration vers des composants autonomes (standalone)[40].
- Un paramètre booléen indiquant un Input comme étant requis[40].
Version 17
Angular 17 a été publiée le .
- 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[41]
- De plus, la documentation a été revue.
- Mise en place d'une nouvelle syntaxe pour les templates. Par exemple :est remplacé par :
<ng-container *ngFor="let item of list"> <div *ngIf="condition; else elseTemplate"> A </div> <ng-template #elseTemplate> <div> B </div> </ng-template> </ng-container>
@for (item of list; track item) { @if (condition) { <div>A</div> } @else { <div>B</div> } }
Version 18
Angular 18 a été publiée le . Voici quelques nouveautés[42]:
- Détection sans zone.js en mode expérimental
- Amélioration des signaux avec de nouvelles API en aperçu développeur
- Le mode SSR a été amélioré (hydratation partielle, rejeu des événements).
- Amélioration du débogage
Version 19
Angular 19 a été publiée le . Voici les nouveautés sont [43]:
- L'hydratation incrémentale qui permet un rendu côté serveur (SSR) plus rapide.
- Standalone activé par défaut.
- Une nouvelle API
resource()pour gérer les données. - De nouveaux signaux (dont
linkedSignal). - Modes SSR par route (
client,server,prerender). - L'HMR (Hot Module Replacement) a été amélioré et est plus rapide (il est même disponible même pour les templates).
- Un nouveau Time Picker dans Angular Material.
- Une configuration de sécurité du contenu (CSP) plus stricte.
Version 20
Angular 20 a été publiée le . Les nouveautés sont les suivantes[44]:
- Un mode sans zone.js en prévisualisation (gain de performances en vue).
- Une meilleure intégration des signaux.
- Une amélioration de l'expérience de débogage, avec une meilleure intégration dans les outils de développement Chrome (DevTools).
- Une mise à jour du guide de style.
Version 21
La version 21 d'Angular a été publiée le 19 novembre 2025[45].
- Les formulaires utilisant la nouvelle librairie Signal sont disponibles de manière expérimentale.
- Une nouvelle bibliothèque, nommée Angular Aria, est annoncée, et l'accessibilité en sera la priorité.
- Les agents d'IA peuvent utiliser le serveur MCP d'Angular, ce qui permet aux LLM d'utiliser plus rapidement les nouvelles fonctionnalités d'Angular.
- Le CLI Angular intègre par défaut Vitest pour lancer les tests
- Les nouvelles applications Angular ne prennent plus en charge zone.js par défaut[46].
Politique d'évolution
Chaque version est prévue pour être compatible avec la version antérieure. Il y a deux mises à jour par an.
Politique de support
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[47].
Les versions en cours sont[48]:
| Version | Status | Date de publication | Date de fin de support actif | Date de fin de LTS |
|---|---|---|---|---|
| 21 | Actif | 19/11/2025 | 19/05/2026 | 19/05/2027 |
| 20 | LTS | 28/05/2025 | 21/11/2025 | 21/11/2026 |
| 19 | LTS | 19/11/2024 | 28/05/2025 | 19/05/2026 |
Bibliothèques
Angular Material
Angular Material est une bibliothèque de composants d'interface utilisateur qui implémente le Material Design de Google dans Angular. Elle offre une expérience utilisateur cohérente sur différents appareils et plateformes[49].
Angular Material inclut divers composants tels que des boutons, des cartes, des boîtes de dialogue, des grilles et des contrôles de formulaire. Ces composants sont conçus pour être personnalisables et faciles à intégrer aux applications Angular. Parmi les autres fonctionnalités d'Angular Material, on retrouve la prise en charge du responsive design, des thèmes et de l'accessibilité[49].
Angular Aria
Angular Aria est une bibliothèque de composants d'interface utilisateur conçue pour améliorer l'accessibilité. À la différence d'Angular Material, les composants sont headless, c'est à dire dépourvu de tout style par défaut[50].
Exemple
Voici un exemple simple de composant affichant un bouton avec un compteur qui s'incrémente à chaque clic:
import { Component, signal } from '@angular/core';
@Component({
selector: 'app-counter',
template: `
<h2>Count: {{ count() }}</h2>
<button (click)="increment()">Increment</button>
`
})
export class CounterComponent {
count = signal(0);
increment() {
this.count.update(value => value + 1);
}
}
Pour l'afficher, il suffit d'ajouter son sélecteur dans le modèle (le template HTML) d'un autre composant[7]:
<app-counter></app-counter>
Notes et références
- ↑ « Release 21.0.0 », (consulté le )
- ↑ (en) « Angular (2+) • r/Angular2 », sur reddit (consulté le ).
- ↑ Manjunath M, « AngularJS and Angular 2+ : a Detailed Comparison — SitePoint », sur Sitepoint.com, (consulté le ).
- ↑ (en) « Technology | 2025 Stack Overflow Developer Survey », sur survey.stackoverflow.co (consulté le )
- ↑ (en) « Angular », sur angular.io (consulté le ).
- ↑ « What’s the difference between AngularJS and Angular? », sur gorrion.io, (consulté le )
- « Comprendre les composants dans Angular 🧱 | Angular », sur angular.fr (consulté le )
- ↑ « C'est quoi le Data binding ? », sur Bonjour Angular (consulté le )
- ↑ « Injection de dépendances et la fonction inject() | Angular », sur angular.fr (consulté le )
- ↑ « C'est quoi une Directive ? », sur Bonjour Angular (consulté le )
- ↑ « Créer un simple routeur | Angular », sur angular.fr (consulté le )
- ↑ (en-US) « Server-side rendering (SSR) - Glossary | MDN », sur MDN Web Docs, (consulté le )
- ↑ « Tout comprendre sur les Signals », sur Bonjour Angular (consulté le )
- ↑ « Angular: Branding Guidelines for AngularJS » (consulté le )
- ↑ Coman Hamilton, « A sneak peek at the radically new Angular 2.0 » (consulté le )
- ↑ « Ng-Europe schedule »
- ↑ Coman Hamilton, « Angular 2.0 announcement backfires » (consulté le )
- ↑ angularjs, « Angular 2 moves from Alpha to Developer Preview! Dev guide and API docs now available at ... angular.io/docs/js/latest », sur Twitter, (consulté le )
- ↑ « Angular: Angular 2 Beta », sur angularjs.blogspot.it (consulté le )
- ↑ « angular/angular », sur GitHub (consulté le )
- ↑ « Ok... let me explain: it's going to be Angular 4.0 », sur angularjs.blogspot.kr (consulté le )
- ↑ « Angular 4.0.0 Now Available », sur angularjs.blogspot.ca (consulté le )
- ↑ « Angular 4 coming in 2017, to be backwards compatible with Angular 2 », sur react-etc.net (consulté le )
- ↑ Stephen Fluin, « Version 5.0.0 of Angular Now Available » (consulté le )
- ↑ « Angular 5 JavaScript framework delayed »
- ↑ « Version 6.0.0 of Angular Now Available » (consulté le )
- ↑ « Version 7 of Angular — CLI Prompts, Virtual Scroll, Drag and Drop and more » (consulté le )
- ↑ « Angular 7: Mise à niveau et nouveautés – SimplX » (consulté le )
- ↑ « Version 8 of Angular — Smaller bundles, CLI APIs, and alignment with the ecosystem » (consulté le )
- ↑ Matthias Mannette, « Les nouveautés d'Angular 8 », sur Ambient IT, (consulté le )
- ↑ (en) Stephen Fluin, « Version 9 of Angular Now Available— Project Ivy has arrived! », sur Medium, (consulté le )
- ↑ (en) Krill Paul, « What’s new in Angular 10 », sur InfoWorld, (consulté le )
- ↑ (en) Mark Thompson (@marktechson), « Version 11 of Angular Now Available », sur Medium, (consulté le )
- ↑ « Sortie de Angular 11 », sur Programmez!, (consulté le )
- ↑ (en) Mark Thompson (@marktechson), « Angular v12 is now available », sur Medium, (consulté le )
- ↑ (en) Mark Thompson (@marktechson), « Angular v13 is now Available », sur Medium, (consulté le )
- ↑ « L'équipe Angular de Google annonce la version 14 d'Angular, le framework open source basé sur TypeScript, elle apporte un diagnostic étendu pour les développeurs », Developpez.com (consulté le )
- ↑ Alexandre Grisey, « Angular 15 : ses nouveautés pour simplifier le développement », sur FreelanceTalks, (consulté le )
- ↑ (en) « Angular 15 vient de sortir ! », sur https://www.devtobecurious.fr (consulté le )
- « Angular », sur v17.angular.io (consulté le )
- ↑ https://blog.angular.io/introducing-angular-v17-4d7033312e4b
- ↑ (en) Minko Gechev, « Angular v18 is now available! », sur Medium, (consulté le )
- ↑ « Nouveautés d'Angular 19 (20 novembre 2024) | Angular », sur angular.fr (consulté le )
- ↑ (en) « Angular 20 - What’s New », sur Angular.love (consulté le )
- ↑ (en) Angular, « Announcing Angular v21 », sur Medium, (consulté le )
- ↑ « Angular 21 : les nouveautés confirmées », sur Programmez!, (consulté le )
- ↑ « Angular », sur angular.io (consulté le )
- ↑ (en) Angular Team, « Versioning and releases • Angular », sur angular.dev (consulté le )
- f.grandvallet, « Angular material UI : test et avis - Easy Partner », (consulté le )
- ↑ (en) Angular, « Announcing Angular v21 », sur Medium, (consulté le )
