Ce livre de la collection vBook se compose d'un livre de référence sur Angular en version 8 pour maîtriser le développement d’applications web avec le framework JavaScript de Google et d’un approfondissement sous forme de vidéo sur la gestion du routing pour mettre en place la navigation d'une application web.Livre Angular - Développez vos applications web avec le framework JavaScript de Google (2e édition)Ce livre permet aux lecteurs de se lancer dans le développement d'applications web avec le...
Niveau Initié à Confirmé
Parution octobre 2020
Ce livre de la collection vBook se compose d'un livre de référence sur Angular en version 8 pour maîtriser le développement d’applications web avec le framework JavaScript de Google et d’un approfondissement sous forme de vidéo sur la gestion du routing pour mettre en place la navigation d'une application web.
Livre Angular - Développez vos applications web avec le framework JavaScript de Google (2e édition)
Ce livre permet aux lecteurs de se lancer dans le développement d'applications web avec le framework Angular (en version 8 au moment de l'écriture). Pour une meilleure compréhension de son contenu, il est nécessaire d'avoir un minimum de connaissances sur le fonctionnement du web et sur les langages HTML et JavaScript. Les auteurs ont eu à coeur de rédiger un livre très pragmatique avec de nombreux exemples de code, commentés et expliqués, qui illustrent de façon très concrète les passages plus théoriques. Conçu pour être un allié efficace au quotidien, ce livre à la structure claire constitue un réel référentiel Angular pour le développeur.
Dans les premiers chapitres, pour pouvoir démarrer le développement d'une application avec Angular, les auteurs traitent des sujets à maîtriser que sont les composants, les templates, les pipes ou encore les modules. Le langage de Microsoft TypeScript et l'outil en ligne de commande CLI sont également étudiés.
Chacun des chapitres suivants détaille une brique précise du framework. Le lecteur y apprend ce qu'est un composant, un service ou une directive et comment les utiliser. Le fonctionnement de l'injection de dépendances ou du routage sont traités ainsi que la création d'un formulaire ou les interactions avec l'utilisateur.
Le livre se poursuit avec l'apprentissage des tests d'une application Angular, que ce soit au travers de tests unitaires ou d'intégration (end-to-end), ainsi que des différentes possibilités existantes pour rendre une application multiplateforme (ou cross-platform).
Enfin, un chapitre est consacré à des sujets plus avancés dans lequel les auteurs détaillent notamment la façon d'effectuer le rendu côté serveur ou encore le fonctionnement du moteur de détection de changements.
Vidéo Routing avec Angular 8
Cette vidéo de formation s'adresse à tout développeur JavaScript souhaitant apprendre à gérer le routing avec Angular 8 pour mettre en place la navigation d'une application web et la sécuriser. Après une présentation des fonctionnalités de base du routing, vous verrez comment mettre en œuvre les premières routes dans une application, gérer des liens avec router-link et router-link-active ou encore comment passer des paramètres entre les pages. Vous étudierez également le principe des Guards pour sécuriser des parties de l'application et ainsi bloquer la navigation vers des zones non accessibles.
2.2 Installation d’Angular CLI et initialisation du projet
3. Mon premier composant
4. Mon premier module
5. Lancement de l'application
Fondamentaux d'Angular
1. Introduction
2. Les composants
3. Les templates
3.1 Binding
3.2 Événements JavaScript
3.3 Listes
3.4 Afficher/cacher un élément
3.5 Liens
3.6 Styles
3.7 Directives
4. Les décorateurs
5. Les pipes
5.1 Utiliser un pipe
5.2 Les pipes du framework
5.3 Créer un pipe
5.3.1 Les pipes de transformation
5.3.2 Les pipes filtres
5.4 Les pipes purs et impurs
6. Les modules
7. Observable et promise
8. Préparer l'application pour la production
TypeScript
1. JavaScript
2. TypeScript
2.1 Syntaxe
2.1.1 Variables
2.1.2 Fonctions
2.1.3 Classes
2.1.4 Arrow Function
2.1.5 Union type
2.1.6 Interface
2.1.7 Générique
2.1.8 Les décorateurs
2.2 Typings
2.3 Compilation
2.4 EcmaScript 6 et 7 dès maintenant
2.5 Angular et TypeScript
Angular CLI
1. Introduction
2. Qu'est-ce qu’Angular CLI ?
2.1 La définition
2.2 Les commandes principales
2.2.1 Créer un nouveau projet Angular CLI : ng new
2.2.2 Compiler l'application : ng build
2.2.3 Lancer l'application avec ng serve
2.2.4 Exécuter les tests avec Angular CLI
2.3 Les commandes de scaffolding
2.4 La génération d'un composant
3. Configurer un projet Angular CLI
3.1 Schéma du fichier de configuration d'Angular CLI
3.2 Gérer les assets lors de la compilation
3.3 Intégrer une librairie externe
3.4 Intégrer un préprocesseur CSS
3.5 Ajouter des entités de manière globale
3.5.1 Ajouter un script globalement
3.5.2 Ajouter une feuille de style globalement
3.6 Éjecter la configuration Webpack
4. Compilation Ahead-Of-Time (AOT)
Les composants
1. Introduction
2. Qu'est-ce qu'un composant ?
2.1 Une première définition
2.2 Créer un premier composant
2.2.1 Syntaxe inline
2.2.2 Une réelle syntaxe, découpée en plusieurs fichiers
2.2.3 Utiliser un composant dans son application
2.3 Afficher les propriétés d'un composant
3. Les inputs et outputs
3.1 Les inputs d'un composant
3.1.1 Déclarer une variable en tant qu'Input
3.1.2 Un exemple concret avec une liste
3.1.3 Donner un nom personnalisé à son input
3.2 Les outputs d'un composant
3.3 Donner un nom personnalisé à son output
4. Interaction entre composants
4.1 Passer une donnée du parent vers l'enfant à l'aide d'un input
4.2 Intercepter un changement de valeur à l'aide d'un setter
4.3 Notifier le parent à l'aide d'un EventEmitter en output
4.4 Observer les changements d'input avec ngOnChanges
4.5 Utiliser une variable locale
5. Les décorateurs @ViewChild et @ViewChildren
5.1 Récupérer une référence avec @ViewChild
5.2 Récupérer plusieurs références avec @ViewChildren
6. Les composants Angular et la View Encapsulation
6.1 Le Shadow DOM
6.2 Spécifier une View Encapsulation
6.3 Les types de View Encapsulation
6.3.1 La View Encapsulation émulée
6.3.2 La View Encapsulation native
6.3.3 Aucune View Encapsulation
Les services
1. Introduction
2. Qu'est-ce qu'un service ?
3. Déclarer son service
4. Utiliser son service
5. Rendre son service asynchrone
5.1 Les promises
5.2 Les observables
5.3 Que choisir ?
6. Notifier lorsque les données changent
L'injection de dépendances
1. Principe de base
2. Injection de dépendances dans Angular
2.1 Enregistrement global
2.2 Enregistrement dans un composant
2.3 Injecter une dépendance
3. Provider
3.1 UseClass
3.2 UseExisting
3.3 UseFactory
3.4 UseValue
3.5 OpaqueToken
3.6 Dépendance optionnelle
3.7 Injection restreinte
3.8 Restriction de l'enregistrement d'une dépendance
Le requêtage HTTP
1. Introduction
2. Obtenir et envoyer des données
3. Transformer des données
4. Communiquer de manière sécurisée
5. Simuler le requêtage HTTP
Les interactions utilisateur
1. Qu’est-ce que l’event binding ?
2. S’abonner à un événement
3. Récupérer une entrée utilisateur
3.1 Comment manipuler l’objet $event ?
3.2 Utiliser un typage fort pour $event
3.3 Une alternative grâce à un template reference variable
3.4 Utiliser un template reference variable avec un événement
3.5 Filtrer les entrées utilisateur
Les formulaires
1. Les formulaires basés sur un template
2. Créer un composant formulaire
2.1 Le composant
2.2 La vue et le data binding
2.2.1 La syntaxe ngModel
2.2.2 ngModel en détail
2.2.3 L’utilisation de ngModel dans un cas concret
2.3 Intégrer le formulaire dans l’application
3. Les états et la validité d’un champ
3.1 Les états d’un input
3.2 Styliser selon la validité
4. Soumettre le formulaire
5. Les formulaires et les FormControls
5.1 Les contrôles et les groupes de contrôles
5.2 Les validateurs intégrés
5.3 Créer un validateur personnalisé
5.4 Les validateurs asynchrones
Le routage
1. Introduction
2. Définir les routes d’une application
3. Le rendu de composant
4. Naviguer dans son application
5. Récupération des données de routage
6. Outlet nommé
6.1 Définir des outlets nommés
6.2 Naviguer avec des outlets nommés
7. Resolver
Les directives
1. Introduction
2. Qu’est-ce qu’une directive ?
2.1 Introduction
2.2 Directives communes
2.2.1 ngIf
2.2.2 ngFor
2.2.3 ngStyle
2.2.4 ngClass
3. Les directives d’attribut
3.1 Créer une directive d’attribut
3.2 Interagir avec les événements du DOM
3.3 Passer des valeurs aux directives d’attribut
4. Les directives structurelles
4.1 La balise <template> et l’astérisque
4.2 Créer une directive structurelle
Tester son application
1. Introduction
2. Les tests unitaires
2.1 Introduction aux tests avec Jasmine
2.2 Exécuter du code avant ou après chaque test
2.3 Les matchers mis à disposition
2.3.1 Comment utiliser un matcher ?
2.3.2 Des exemples de matchers
2.3.3 Négation d’un matcher
2.4 Créer un matcher personnalisé
2.4.1 Créer une librairie de matchers personnalisés
2.4.2 Utiliser un matcher personnalisé
2.5 Les composants
2.5.1 Le composant à tester
2.5.2 Le TestBed
2.5.3 Vérifier que le composant est bien instancié
2.5.4 Contrôler les propriétés du composant
2.5.5 S’assurer que le rendu du composant soit cohérent
2.6 Les services
2.6.1 Le service à tester
2.6.2 Tester le service
2.6.3 S’assurer que le service est bien injecté
2.7 Les directives
2.7.1 La directive à tester
2.7.2 Tester la directive
2.8 Injecter un faux service
3. Les tests e2e
3.1 Lancer les tests e2e
3.2 Écrire un test e2e
3.2.1 Interagir avec le navigateur
3.2.2 Récupérer un élément du DOM et interagir avec
3.2.3 Interagir avec les éléments DOM
3.2.4 Tester le composant
3.3 Écrire un test e2e, en mieux
Le cross-platform avec Angular
1. Apache Cordova
1.1 Créer un projet Apache Cordova
1.2 Angular dans Apache Cordova
1.3 Utiliser un plug-in Apache Cordova
2. Ionic 2
2.1 Créer un projet Ionic
2.2 Utiliser les composants Ionic
2.3 Utiliser Ionic DevApp
2.4 Utiliser un plug-in avec Ionic
Pour aller plus loin
1. Introduction
2. Rendu côté serveur
2.1 Principe de la mise en place
2.2 Ajouter le rendu côté serveur
3. La détection de changement
3.1 Pourquoi la détection de changement ?
3.2 Les Zones, ou comment notifier Angular ?
3.2.1 Le comportement de la détection de changement
3.2.2 L’immuabilité et la stratégie de détection de changement OnPush
3.3 Encore plus de contrôle sur la détection de changement
4. Le cycle de vie d’un composant
4.1 La présentation des lifecycle hooks
4.1.1 Les différents hooks
4.1.2 Utiliser un lifecycle hook
4.2 Le cycle de vie d’un composant
4.2.1 Le constructeur
4.2.2 ngOnInit
4.2.3 ngOnChanges
4.2.4 ngDoCheck
4.2.5 ngAfterContentInit
4.2.6 ngAfterContentChecked
4.2.7 ngAfterViewInit
4.2.8 ngAfterViewChecked
4.2.9 ngOnDestroy
Index
Daniel DJORDJEVIC
Développeur passionné depuis de nombreuses années, Daniel DJORDJEVIC a toujours porté de l’intérêt aux technologies web. Aujourd'hui Tech Lead, il intervient sur toute la stack de nouveaux projets, notamment avec Angular, React et ASP.NET Core au sein du cloud Microsoft Azure, ainsi que sur la gestion de projet et le DevOps.
Développeur web Full Stack depuis plusieurs années, Sébastien OLLIVIER s'intéresse particulièrement aux problématiques d'architecture et de performance. Au quotidien, il travaille à la fois sur des sujets d'UI, d'architecture Cloud, de performances et de DevOps. Il est également l’auteur de deux livres sur Angular aux Editions ENI. Vous pouvez suivre son actualité sur son compte twitter @SebastienOll et sur son blog https://sebastienollivier.fr/blog.
Après avoir travaillé pendant 10 ans pour de multiples sociétés de tous les types (SSII, Agence Web, Pure Player, entreprises du logiciel libre), Vincent BOURDEIX est aujourd'hui le fondateur de la société Web2Bee, une agence web lyonnaise spécialisée dans la réalisation d'applications web à fort trafic. Il s'est forgé une expérience poussée sur les technologies du web et a acquis une réelle expertise sur le framework Symfony. À ce titre, il donne des formations dans le développement web et accompagne ses clients dans la réalisation de leurs projets, tout en s'assurant de la qualité et de la robustesse des solutions mises en œuvre.
Développeur web Full Stack passionné, William KLEIN est en veille technologique permanente sur les domaines des applications web et des technologies .NET.