alphorm.com formation angular - les fondamentaux

138
Angular (v4.0) Une formation Frédéric GAURAT

Upload: alphorm

Post on 21-Jan-2018

15.564 views

Category:

Technology


21 download

TRANSCRIPT

Page 1: Alphorm.com Formation Angular - Les fondamentaux

Angular (v4.0)

Une formation

Frédéric GAURAT

Page 2: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Cursus Angular

Page 3: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Introduction

• Les Web Components

• Architecture d’une application Angular

• Une première application Angular

• Travail avec les templates

• RxJS

• Les formulaires

• Travail avec HTTP

• Le Routage

• Le projet TodoList

Conclusion

Plan

Page 4: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Public concerné

Développeurs Web et Architectes

Page 5: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Connaissances requises

Page 6: Alphorm.com Formation Angular - Les fondamentaux

A vous de jouer !

Page 7: Alphorm.com Formation Angular - Les fondamentaux

Présentation du projet de la formation

Une formation

Frédéric GAURAT

Page 8: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Le projet Todo List

Le serveur et la base de données

Présentation des outils

Plan

Page 9: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Le projet Todo List

Page 10: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Le serveur et la BDD

Page 11: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Microsoft Visual Studio Code

Ng-cli (https://cli.angular.io/)

Présentation des outils

Page 12: Alphorm.com Formation Angular - Les fondamentaux

Merci

Page 13: Alphorm.com Formation Angular - Les fondamentaux

Création de balises personnalisées

Une formation

Frédéric GAURAT

Page 14: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Les Web Components

Templates

Shadow DOM

Custom elements

Plan

Page 15: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Les Web Components

Ensembles de spécifications (W3C) définissant des API permettant la création de balises réutilisables

<alphorm>…</alphorm>

Page 16: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Templates

La spécification des Templates, décrit la création de fragment HTML

Ces fragments ne sont pas chargés au démarrage de la page

Ces fragments sont instanciés plus tard

Page 17: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Shadow DOM

La spécification Shadom DOM décrit comment encapsuler les éléments ou les styles de vos composants (rendre privé)

Page 18: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Custom elements

La spécification Custom elements définit comment concevoir et utiliser des nouveaux types d’élément DOM

Page 19: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Exemple HelloWorld

Page 20: Alphorm.com Formation Angular - Les fondamentaux

Merci

Page 21: Alphorm.com Formation Angular - Les fondamentaux

Architecture d'une application Angular

Une formation

Frédéric GAURAT

Page 22: Alphorm.com Formation Angular - Les fondamentaux
Page 23: Alphorm.com Formation Angular - Les fondamentaux

Merci

Page 24: Alphorm.com Formation Angular - Les fondamentaux

Les Modules

Une formation

Frédéric GAURAT

Page 25: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Organiser une application avec des modules

Le module root

Structure d’un module

Plan

Page 26: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Organiser via des modules

Un module définit la façon dont les éléments d’une application s’intègrent

C’est un top-level component

Page 27: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Le module root

Une application a au moins un module principal

Ce module est utilisé pour initialiserl’application

Page 28: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Structure d’un module

Page 29: Alphorm.com Formation Angular - Les fondamentaux

Merci

Page 30: Alphorm.com Formation Angular - Les fondamentaux

Les Components

Une formation

Frédéric GAURAT

Page 31: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Les Components

Les Templates

Metadata

Le Data binding

Conclusion

Plan

Page 32: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Les Components

Un Component contrôle un fragment de l’interface utilisateur

Il est défini dans une classe

La classe interagit avec la view via ses propriétés et ses méthodes

Page 33: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Les Templates

Les templates définissent la partie visible de votre component

Un template ressemble à un fichier HTML avec quelques différences : la templatesyntax

Page 34: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Metadata

Une simple classe ne suffit pas pour décrire un component

Il faut compléter la classe avec un decorator(TypeScript)

Les metadatas sont un lien entre component et template

Page 35: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Metadata

Page 36: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Relations entre Components

Page 37: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Le Data binding

DO

M

Co

mp

on

en

t

{{value}}

[property] = ‘value’

(event) = ‘handler’

[(ng-model)] = ‘property’

Page 38: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Conclusion

Page 39: Alphorm.com Formation Angular - Les fondamentaux

Merci

Page 40: Alphorm.com Formation Angular - Les fondamentaux

Les Directives

Une formation

Frédéric GAURAT

Page 41: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Introduction

Les 2 types de Directives

Structural directives

Attribute directives

Plan

Page 42: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Introduction

Les directives s’utilisent dans les templates

Les components sont des directives (AngularJS) mais sont considérés comme des éléments à parts entières

Nous utilisons des directives pour structurer nos templates et pour changer le comportement d’un élément

Page 43: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Les 2 types de Directives

Structural directives

Attribute directives

Page 44: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Structural directives

Les directives structurelles permettent de modifier le layout en manipulant les éléments du DOM

Page 45: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Attribute directives

Les directives attribut sont utilisées pour modifier l’apparence ou le comportement d’un élément

Page 46: Alphorm.com Formation Angular - Les fondamentaux

Merci

Page 47: Alphorm.com Formation Angular - Les fondamentaux

Les Services

Une formation

Frédéric GAURAT

Page 48: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Les Services

La notion de service regroupe valeurs, fonctions ou fonctionnalités nécessaires à votre application

En règle générale, c’est une simple classe implémentant une fonctionnalité

Page 49: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Les Services

Un service sera injecté dans un component

Il aura la responsabilité de décharger le component de tout ce qui ne concerne pas l’interface utilisateur

Page 50: Alphorm.com Formation Angular - Les fondamentaux

Merci

Page 51: Alphorm.com Formation Angular - Les fondamentaux

Notion d’injection de dépendance

Une formation

Frédéric GAURAT

Page 52: Alphorm.com Formation Angular - Les fondamentaux

Une formation

L’inversion de contrôle

L’injection de dépendance

L’injector

Plan

Page 53: Alphorm.com Formation Angular - Les fondamentaux

Une formation

L’inversion de contrôle

Page 54: Alphorm.com Formation Angular - Les fondamentaux

Une formation

L’injection de dépendance

L’injection de dépendance est le moyen de fournir à un component un objet construit avec toutes ses dépendances

Page 55: Alphorm.com Formation Angular - Les fondamentaux

Une formation

L’injector

L’injector est sollicité par Angular lors de la création d’un component

Il maintient un conteneur d’instance précédemment créée

Si le service demandé n’existe pas, il est alors instancié et passé en paramètre au constructeur du component

Sinon il est directement passé en paramètre au constructeur du component

Page 56: Alphorm.com Formation Angular - Les fondamentaux

Une formation

L’injector

Page 57: Alphorm.com Formation Angular - Les fondamentaux

Merci

Page 58: Alphorm.com Formation Angular - Les fondamentaux

Création du projet

Une formation

Frédéric GAURAT

Page 59: Alphorm.com Formation Angular - Les fondamentaux

Une formation

HelloWorld !

QuickStart seed

Test de l’application

Plan

Page 60: Alphorm.com Formation Angular - Les fondamentaux

Une formation

HelloWorld !

Page 61: Alphorm.com Formation Angular - Les fondamentaux

Une formation

QuickStart seed

Installation de l’environnement

Téléchargement des fichiers

npm install

Les fichiers essentiels

app/app.component.ts

app/app.module.ts

main.ts

package.json

Page 62: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Test de l’application

Lancement de l’environnement de test

npm run start

Présentation de browser-sync

Page 63: Alphorm.com Formation Angular - Les fondamentaux

Merci

Page 64: Alphorm.com Formation Angular - Les fondamentaux

Démarrer “from scratch” avec angular-cli

Une formation

Frédéric GAURAT

Page 65: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Création d’un projet avec angular-cli

Générer un composant

Tester une application localement

L’outil webpack

Les autres outils

Plan

Page 66: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Projet avec angular-cli

https://cli.angular.io/

Page 67: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Générer un composant

La commande ng generate

Page 68: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Tester une app localement

La commande ng serve

Page 69: Alphorm.com Formation Angular - Les fondamentaux

Une formation

L’outils webpack

Page 70: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Les autres outils

Lancement des tests unitaires

Vérification du code avec lint

Page 71: Alphorm.com Formation Angular - Les fondamentaux

Merci

Page 72: Alphorm.com Formation Angular - Les fondamentaux

Notion d’interpolation

Une formation

Frédéric GAURAT

Page 73: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Interpolation

Template expressions

Plan

Page 74: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Interpolation

Une interpolation permet l'évaluation de variables ou d'expressions à l'intérieur d'une chaîne de caractères littérale

Avec Angular l’interpolation se place entre accolades

Le texte entre accolade est une template expression

Exemples :

La somme de 1 + 1 est {{1 + 1}}

Hello {{name}}

Page 75: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Interprétation d’une Interpolation

Evaluation du contenu

conversion du résultat en une chaîne de caractères

Assignation du résultat par property binding (modification du DOM)

Page 76: Alphorm.com Formation Angular - Les fondamentaux

Merci

Page 77: Alphorm.com Formation Angular - Les fondamentaux

Utilisation des bindings

Une formation

Frédéric GAURAT

Page 78: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Le principe de binding

Les différents types de binding

Attribut HTML et propriété DOM

Les cibles du binding

Plan

Page 79: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Le principe de binding

Direction du binding

Page 80: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Les types de binding

Page 81: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Attribut HTML et propriété DOM

Un attribut HTML est différent d’une propriété DOM !

Un attribut HTML initialise une propriété DOM

Une propriété DOM peut varier, pas un attribut HTML

Page 82: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Les cibles du binding

Page 83: Alphorm.com Formation Angular - Les fondamentaux

Merci

Page 84: Alphorm.com Formation Angular - Les fondamentaux

Directives, Pipe et template variable

Une formation

Frédéric GAURAT

Page 85: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Notion de directives structurelles

Quelques directives Angular

L’opérateur Pipe

Les variables de template

Plan

Page 86: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Directives structurelles

Elles sont responsable de la structure du DOM

Elles s’appuient sur la spécification Templates du W3C

Pour en faciliter l’utilisation on utilise une microsyntax préfixé par un ‘*’

Page 87: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Quelques directives Angular

*ngIf : ajout ou suppression conditionnel d’élément DOM

*ngFor : permet de répéter un templateen s’appuyant sur une liste

*ngSwitch : permet d’afficher différentes vues en fonction d’une condition

Page 88: Alphorm.com Formation Angular - Les fondamentaux

Une formation

L’opérateur Pipe

Reprend l’idée du pipe Unix : ( symbole | )

La sortie d’un processus devient l’entrée du suivant

Permet la transformation du résultat d’une expression

Page 89: Alphorm.com Formation Angular - Les fondamentaux

Une formation

L’opérateur Pipe

hello HELLO

uppercase

{{« hello »|uppercase}}

Page 90: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Les variables de template

Les variables de template sont des références à des éléments dans le DOM (html, component ou directives)

Elles sont préfixées par un ‘#’

Page 91: Alphorm.com Formation Angular - Les fondamentaux

Merci

Page 92: Alphorm.com Formation Angular - Les fondamentaux

La programmation réactive avec RxJS

Une formation

Frédéric GAURAT

Page 93: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Qu’est-ce que la programmation réactive?

Le pattern Observer

Le pattern Iterator

Introduction à RxJS

Plan

Page 94: Alphorm.com Formation Angular - Les fondamentaux

Une formation

La programmation réactive

Un modèle de programmation visant à conserver une cohérence d'ensemble en propageant les modifications d'une source réactive (modification d'une variable, entrée utilisateur, etc.) aux éléments dépendants de cette sourceSource : wikipedia

Page 95: Alphorm.com Formation Angular - Les fondamentaux

Une formation

La programmation réactive

Exemple avec Excel

Page 96: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Le pattern Observer

Page 97: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Le pattern Iterator

Page 98: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Introduction à RxJS

Page 99: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Introduction à RxJS

Rx Pattern = Observer Pattern + Iterator Pattern

Page 100: Alphorm.com Formation Angular - Les fondamentaux

Merci

Page 101: Alphorm.com Formation Angular - Les fondamentaux

Utilisation de RxJS

Une formation

Frédéric GAURAT

Page 102: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Observable

Operators

Plan

Page 103: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Observable

Observable sur un tableau

Observable sur un Event

Page 104: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Operators

Un operator est une fonction qui crée un nouvel observer basé sur l’observer de base en y appliquant la fonction

rxmarbles.com

Page 105: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Operators

Operator map()

Operator filter()

Operator merge()

Page 106: Alphorm.com Formation Angular - Les fondamentaux

Merci

Page 107: Alphorm.com Formation Angular - Les fondamentaux

Construction et validation d’un formulaire

Une formation

Frédéric GAURAT

Page 108: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Construire un formulaire

La directive ngModel

Surveiller les changements

Styles CSS et état de formulaire

Le directive ngSubmit

Plan

Page 109: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Construire un formulaire

Les 2 types de constructions de formulaires

• Template based

• Code based

La class Model

Le form component

Page 110: Alphorm.com Formation Angular - Les fondamentaux

Une formation

La directive ngModel

Le template du formulaire

Le binding bi-directionnel (ngModel)

La directive ngForm

Page 111: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Surveiller les changements

ngModel surveille les changements et y affecte des classes

Le champ a été visité : ng-touched (ng-untouched)

La valeur du champ a changé : ng-dirty (ng-pristine)

La valeur du champ est valide : ng-valid (ng-invalid)

Page 112: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Styles CSS et état de formulaire

Appliquer des styles CSS aux états renvoyés par ngModel

Page 113: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Le directive ngSubmit

Exécuter du code lors de la soumission du formulaire

Empêcher la soumission si le formulaire n’est pas valide

Page 114: Alphorm.com Formation Angular - Les fondamentaux

Merci

Page 115: Alphorm.com Formation Angular - Les fondamentaux

Ajax et Angular

Une formation

Frédéric GAURAT

Page 116: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Utiliser le HttpModule

Communiquer avec le serveur

Plan

Page 117: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Le provider Http

Le module doit importer le HttpModule

Le service Http est utilisable par injection de dépendance

Page 118: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Communiquer avec le serveur

Simuler une web API

Recevoir des données

Envoyer des données

Quelques opérateurs RxJS

Page 119: Alphorm.com Formation Angular - Les fondamentaux

Merci

Page 120: Alphorm.com Formation Angular - Les fondamentaux

Principe de routage, configuration et directive

Une formation

Frédéric GAURAT

Page 121: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Fonctionnement du router

Les éléments de routage

Configuration

Plan

Page 122: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Fonctionnement du router

Le router Angular reprend le principe de base du navigateur

Il interprète une URL pour naviguer vers la bonne vue

Il peut interpréter les liens pour naviguer vers la bonne vue

Il log l’historique de navigation pour assurer le fonctionnement des boutons back et forward

Page 123: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Les éléments de routage

Router outlet

Router links

Router state

Page 124: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Router outlet

Endroit réservé où Angular doit placer la vue

Page 125: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Router links

Directive routerLink : Permet de référencer une route dans le template

Directive routerLinkActive : Permet d’ajouter automatiquement une classe si la route est active

Page 126: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Router state

Angular maintient un arbre des routes activées

Cet Arbre est le RouterState

Chaque route de cet arbre est accessible et propose des méthodes de parcours

Page 127: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Configuration

Concrètement, le router doit avoir au moins une route configurée

Les routes sont stockées dans un tableau de Route

Ce tableau est ensuite passé au module RouterModule :

- RouterModule.forRoot() (pour des routes principales)

- RouterModule.forChild() (pour des sous-routes)

Page 128: Alphorm.com Formation Angular - Les fondamentaux

Merci

Page 129: Alphorm.com Formation Angular - Les fondamentaux

Le projet TodoList

Une formation

Frédéric GAURAT

Page 130: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Le projet Todo List

L’approche orientée composant

Développement

Plan

Page 131: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Le projet Todo List

Page 132: Alphorm.com Formation Angular - Les fondamentaux

Une formation

L’approche orientée composant

Page 133: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Démonstration

Création du projet avec angular-cli

Configuration de la base de données (deployd)

Création des composants

Page 134: Alphorm.com Formation Angular - Les fondamentaux

Merci

Page 135: Alphorm.com Formation Angular - Les fondamentaux

Conclusion

Une formation

Frédéric GAURAT

Page 136: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Les Web Components

Architecture d’une application Angular

Travail avec les templates

Programmation Reactive avec RxJS

Les formulaires

Travail avec HTTP

Le Routage

Le Projet TodoList

Bilan

Page 137: Alphorm.com Formation Angular - Les fondamentaux

Une formation

Prochaine formation

Angular : Avancé

Page 138: Alphorm.com Formation Angular - Les fondamentaux

Merci