Académique Documents
Professionnel Documents
Culture Documents
Plan
Introduction
Architecture logicielle
Installation
Structure d’un projet
Premier exemple
Directives Angular
Introduction
Angular est un framework qui utilise
TypeScript
Open-source
Présenté par Google en 2009
Permet de créer des applications web
et mobiles
Front-End
Single page (SPA)
Différences avec AngularJS
Angular n'a pas de notion de "portée" ou de contrôleurs, au
lieu de cela il utilise une hiérarchie de composants comme
principale caractéristique architecturale4.
Angular a une syntaxe d'expression différente, en se
concentrant sur les "[ ]" pour la liaison des propriétés, et de
"( )" pour les liaisons des événements
Modularité – beaucoup de fonctionnalités de base ont été
déplacées vers des modules
Angular recommande l'utilisation du langage TypeScript, créé
par Microsoft, qui présente les caractéristiques suivantes:
◦ le principe de classe, à la base de la Programmation Orientée
Objet
◦ le typage statique
◦ les génériques
Différences avec AngularJS
TypeScript est un sur-ensemble d'ECMAScript 6 (ES6), et est
rétro-compatible avec ECMAScript 5 (c'est-à-dire: JavaScript).
Angular comprend également les principes d'ES6 suivant :
les fonctions anonymes
les itérateurs
boucles for-of
générateurs dans le style du langage Python
La réflexion
Le chargement dynamique
Compilation asynchrone des modèles
Itératif rappels fournis par RxJS. RxJS limites de l'état de
visibilité et de débogage, mais ces problèmes peuvent être
résolus avec réactif add-ons comme ngReact ou ngrx.
Architecture Logicielle
MVVM : Model-View-ViewModel
Model : représenté en général par une classe référencée par
la couche d’accés aux données (classe ou interface TypeScript).
View
contient la disposition et l’apparence de ce qu’un utilisateur peut
voir l’écran, recevant l’interaction avec l’utilisateur : clic, saisie,
survol...
ViewModel
remplace le contr ôleur
dans l’architecture MVC,
connecté à la vue par
le data binding
,représentédans Angular
par un fichier *.component.ts.
Architecture Logicielle
Langage utilisé
HTML pour les vues.
CSS pour les styles.
TypeScript pour les scripts depuis la
version 2.
Architecture Logicielle
Les composants web
◦ Consiste à utiliser des classes sans faire de
l’instanciation statique
L’injection de dépendance
Le DOM Virtuel
◦ Une représentation en mémoire du DOM
physique.
◦ Les modifications se font sur ce DOM virtuel
ensuite Angular
◦ s’occupe de les synchroniser vers le DOM
physique
Architecture Logicielle
Le change detection
Réalisé par la librairie zone.js (qu’on peut
trouver dans node modules).
Utilisé pour synchroniser la vue avec le
composant.
Chaque composant dispose d’un change
detector qui surveille en particulier les
expressions utilisées dans l’interpolation ou
le proprité et le binding.
Un changement de la valeur retournée par
l’expression ) mise à jour de la vue.
Installation
Pour développer des applications Angular
on doit installer et télécharger NodeJS
Après avoir installer NodeJS, on installe
Angular en tapant la commande suivante:
if (environment.production) {
enableProdMode();
}
platformBrowserDynamic().bootstrapModule(AppModule)
@Component({
selector: 'app-root',
templateUrl: './app.component.html',
styleUrls: ['./app.component.css']
})
title = 'hello-world';
}
Directives Angular
*ngFor
*ngIf
*ngSwitch
ngStyle
ngClass
Ces directives s’utilisent conjointement
avec les composants web suivant
ng-container
ng-template
Directives Angular
*ngFor
permet de répéter un traitement
(affichage d’un élément HTML) s’utilise
comme un attribut de balise et sa valeur
est une instruction itérative TypeScript
Exemple: Afficher le tableau tab en
utilisant *ngFor
Directives Angular
La directive ngIf
Directives Angular
Affichage des éléments pair et impair d’un
tableau
Directives Angular
Directives Angular
ngStyle
permet de modifier le style d’un élément
HTML.
s’utilise conjointement avec le property
binding pour récupérer des valeurs
définies dans la classe.
Directives Angular
ngClass
permet d’attribuer de nouvelles classes
d’un élément HTML.
s’utilise conjointement avec le property
binding pour récupérer
des valeurs définies dans la classe ou dans
la feuille de style.