Description
JavaScript / TypeScript
- Rappels élémentaires sur le langage JavaScript
- Comprendre les fonctions en ECMAScript
- Comprendre les closures
- Les bonnes pratiques en JavaScript
- Nouveautés ECMAScript 6+
- Présentation de TypeScript
- Les avantages d’un langage plus strict
- Utiliser les fichiers « typings »
- Fonctions aux paramètres par défaut
- Utiliser les interfaces
Introduction à Angular
- Présentation du framework
- Historique des versions
- Philosophie d’Angular et principes à respecter
Les Composants
- Créer une hiérarchie de composants
- Transfert d’informations entre composants
- Les directives structurelles
- Projeter des données dans les composants
Dependency Injection
- Les entités « Injectors » en Angular
- Comprendre les « Injection Token »
- Hierarchie d’injecteur
Observer/Observable et Change Detection
- Maîtriser les promesses
- Utiliser les Observables avec RxJS
- Les opérateurs d’observable
- Cold observables / Hot observables
- Comment fonctionne la détection de changement en Angular
- Optimiser l’application
- Cycle de vie des composants
- Introduction aux “signals”
Les pipes
- Créer un Pipe
- Utilisation du pipe asynchrone
- Étude des 2 types de Pipe existants : « Statefull » & « Stateless »
Les formulaires
- Les Model-Driven & Template-Driven formulaires
- Dynamiser la validation de nos formulaires
- Créer des validateurs personnalisés
Les directives
- Directives natives Angular
- Utilisation des directives structurelles
- Création de directives structurelles complexes
- Les bonnes pratiques pour architecturer son projet
Routing
- Mise en place de routes complexes
- Configuration du système de routing
- Manipuler la navigation des pages
- Optimisation avec le « Lazy Loading »
- Cycle de vie des routes
Tests unitaires
- Mettre en place un plan de tests avec Karma & Jasmine
- Test de classes, composants & fonctions
- Mise en place des mocks, simulation la connexion à un serveur
- Tests asynchrones & gestion du timer
WebPack
- Comprendre WebPack
- Chargement des templates
- Mise en place de loaders & plugins