Utilisation Angular jusqu’à Angular 14
Interface utilisateur
Consommer API REST
Naviguer entre les pages (routing)
Faire des formulaires intelligents
Structurer code de manière modulaire
@Input
Decorateur
@Input() cat!: CatInterface;
Indique une propriété que le composant va recevoir depuis un parent
Le parent va passer un objet cat de type CatInterface à ce composant Cat
@Component
Encapsule la logique, le template HTML et le style CSS
Service
Classe réutilisable qui contient de la logique métier (exemple communication API, appel HTTP)
Il est injectés là ou on en a besoin (composants, autre service)
Le service pour être injecté il doit avoir @Injectable({ providedIn: ‘root’ })
Sont injectés dans le composant via le constructeur pour angular 15
et via inject() dans angular 20
private catService = inject(CatService);
API
Ensemble de règles ou contrat qui permet a un logiciel d’interagir avec un autre
@Injectable({
providedIn: ‘root’
})
Dit que le service peut être injecté dans tous les autres composants de l’application
NgModule (jusqu’à angular 14)
Organiser les composants, les pipes, les services et les directives.
Le point d’entrée de l’app est AppModule
Permet d’organiser ton code par fonctionnalité
peut-être remplacé par bootstrapApplication(AppComponent, {
providers: [/* … */]
});
si utilisation de standalone component
Observable
getCats(): Observable<CatInterface[]> {
return this.http.get<CatInterface[]>(this.apiUrl);
}
Type de donnée qui permet de gérer les données asynchrones
Les évènements utilisateurs
Un flux de donnee auquel on peut subscrire pour recevoir des valeurs des erreurs ou un flux de donnee
Récupération de données depuis l’api
Injection de dépendance
C’est un design pattern
Fournir automatiquement a une classe les objets dont elle a besoin
Avantages d’angular
Framework tout-en-un
Inclus nativement :
- Routing (@angular/router)
- HTTP Client
- Formulaire reactifs
Moins flexible mais donc plus uniforme + robuste
Quelles sont les choses à mettre en place des le début d’un projet angular ?
Formulaire réactifs
(ReactForms)
Internationalisation
CLI de scaffolding (Angular CLI)
2 types de formulaires puissants
DI (injection de dépendance) intégrée
Le test est déjà opérationnel
Karma, Jasmine, TestBed
RxJS
Bibliothèque JavaScript pour gérer des flux de données asynchrones
(à travailler)
Détection de changement
Mettre à jour le DOM automatiquement quand les données changent dans l’application
2 modes de détection de changement dans Angular
Default
ou
OnPush
Default
(Détection de changement)
Chaque fois qu’on interagi avec un composant (event), Angular va parcourir l’ensemble de l’arbre des composants et pour chacun d’entre eux il va vérifier s’il y a une modification
OnPush
(Détection de changement)
Limiter le nombre de modification fait par Angular
Signal
Remplace OnPush & Default
Type qui va permettre de stocker une valeur
Notifié à chaque fois que la valeur va être modifié
Plus besoin de parcourir l’arbre des composants
Les pipes
Les pipes transforment l’affichage d’une valeur sans la modifier dans le code TypeScript.
Exemple :
<!-- Affiche "ALICE" -->
{{ ‘alice’ | uppercase }}
<!-- Affiche "12/07/2025" (selon la locale) -->
{{ myDate | date }}
<!-- Affiche "1 234,56 €" -->
{{ 1234.56 | currency:’EUR’ }}
<!-- Affiche "25.3%" -->
{{ 0.253 | percent }}
Bonjour {{ username }}
username est mis à jour à chaque saisie et l'affiche aussi