SlideShare uma empresa Scribd logo
1 de 18
Les Feature Modules
Angular
Mais qui sommes nous ?
William KLEIN
Développeur Web @InfiniteSquare
Auteur Angular
wklein@infinitesquare.com
wi_klein
willovent
Daniel DJORDJEVIC
Développeur Web @InfiniteSquare
Auteur Angular
ddjordjevic@infinitesquare.com
seloriss
Seloris
Qu’est-ce qu’un Module ?
Module Angular
4
Organiser et Consolider les éléments de notre application
(composants, directives, pipes, services, etc…)
Décorateur @NgModule
declarations
imports
providers
bootstrap
exports
Et les Feature
Modules ???
Et les Feature Modules ???
6
Améliore la lisibilité et la maintenabilité du code
 En structurant naturellement l’application
Améliore les temps de chargement de l’application grâce au Lazy Loading
 En déférant le chargement des modules
Regroupement des éléments d’un même scope fonctionnel
Les Feature Modules
7
Les features module doivent être agnostique de la platforme
 Import de CommonModule et non BrowserModule
La propriété exports permet d’exposer les éléments du module
Lazy Loading
Qu’est-ce que le lazy loading?
9
L’application est divisée en un ensemble de feature modules
 On ne charge que les modules nécessaires au lancement de l’application
 Les modules sont ensuite chargés à la demande
Des paquets moins gros donc chargés plus rapidement
Exporter les routes du feature module
10
Chaque feature est responsable de ses routes
(définies dans un module de routing)
Ne pas appeler RouterModule.forRoot mais plutôt
RouterModule.forChild
Import du module de routing dans le feature module
Automatique avec @angular/cli
ng g m mafeature --routing
Déléguer le routing au feature module
11
Syntaxe :
chemin/vers/fichier#NomDuModule
Angular chargement le module
lorsqu’il sera necessaire.
Les services et
le lazy loading
Les services et le lazy loading
13
Les services ne sont pas scopés à un module,
Sauf si celui-ci est lazy loadé.
Plusieurs instances d’un même
service peuvent être créées alors
que ce n’est pas le comportement souhaité
AppModule
AuthModule FeatureModule
AuthService
import
Lazy load
AuthService 2
AuthService 1
Solution : ModuleWithProviders
14
Les services ne sont plus declarés dans le Module, mais dans un
ModuleWithProviders
 Permet deux méthodes d’import
Import depuis un module racine
15
Import en utilisant la méthode forRoot()
Les services sont fournis par le Feature Module
Import depuis un Feature Module
16
Import en utilisant la méthode classique
Les services ne sont pas fournis, on utilise les courants
Demonstration
Merci pour votre attention !
18
Sources : https://github.com/Seloris/meetup-featureModule

Mais conteúdo relacionado

Semelhante a Meetup Angular Paris - Feature Modules

Technologies sur angular.pptx
Technologies sur angular.pptxTechnologies sur angular.pptx
Technologies sur angular.pptxIdrissaDembl
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sassmarwa baich
 
Chapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdfChapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdfBoubakerMedanas
 
Chapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdfChapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdfBoubakerMedanas
 
Angular : Un aperçu du framework de développement d’applications Web
Angular : Un aperçu du framework de développement d’applications WebAngular : Un aperçu du framework de développement d’applications Web
Angular : Un aperçu du framework de développement d’applications WebDekeltv1
 
Gatekeeper par Guillaume Faure
Gatekeeper par Guillaume FaureGatekeeper par Guillaume Faure
Gatekeeper par Guillaume FaureCocoaHeads France
 
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Publicis Sapient Engineering
 
Qualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidQualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidThibaud CAVIN
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...Jasmine Conseil
 
Web Components et Polymer 2 - GDG Algiers DevFest 2016 - 3 Décembre 2016
Web Components et Polymer 2 - GDG Algiers DevFest 2016 - 3 Décembre 2016Web Components et Polymer 2 - GDG Algiers DevFest 2016 - 3 Décembre 2016
Web Components et Polymer 2 - GDG Algiers DevFest 2016 - 3 Décembre 2016Tarik Zakaria Benmerar
 
Softfluent speig mdday2010
Softfluent speig mdday2010Softfluent speig mdday2010
Softfluent speig mdday2010MD DAY
 
XebiCon'17 : Entrevue avec Vue.js - Thomas Champion et Ludovic Ladeu
XebiCon'17 : Entrevue avec Vue.js - Thomas Champion et Ludovic LadeuXebiCon'17 : Entrevue avec Vue.js - Thomas Champion et Ludovic Ladeu
XebiCon'17 : Entrevue avec Vue.js - Thomas Champion et Ludovic LadeuPublicis Sapient Engineering
 

Semelhante a Meetup Angular Paris - Feature Modules (20)

AngularJS
AngularJSAngularJS
AngularJS
 
Cours 1 introduction
Cours 1 introductionCours 1 introduction
Cours 1 introduction
 
Technologies sur angular.pptx
Technologies sur angular.pptxTechnologies sur angular.pptx
Technologies sur angular.pptx
 
Angular 11
Angular 11Angular 11
Angular 11
 
Ionic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,SassIonic, AngularJS,Cordova,NodeJS,Sass
Ionic, AngularJS,Cordova,NodeJS,Sass
 
Chapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdfChapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdf
 
Chapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdfChapitre 1-Composants et Modules.pdf
Chapitre 1-Composants et Modules.pdf
 
Angular : Un aperçu du framework de développement d’applications Web
Angular : Un aperçu du framework de développement d’applications WebAngular : Un aperçu du framework de développement d’applications Web
Angular : Un aperçu du framework de développement d’applications Web
 
Cours 2 les composants
Cours 2 les composantsCours 2 les composants
Cours 2 les composants
 
Cours spring
Cours springCours spring
Cours spring
 
Gatekeeper par Guillaume Faure
Gatekeeper par Guillaume FaureGatekeeper par Guillaume Faure
Gatekeeper par Guillaume Faure
 
Angular Avancé
Angular AvancéAngular Avancé
Angular Avancé
 
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
Open XKE - De l'intégration continue au déploiement continu sur iOS et Androi...
 
Qualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & AndroidQualité & Industrialisation des développements mobiles sur iOS & Android
Qualité & Industrialisation des développements mobiles sur iOS & Android
 
Angular.pdf
Angular.pdfAngular.pdf
Angular.pdf
 
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et  ...
Livraison en continue avec l'outillage devops - Jenkins, Ansible, Docker et ...
 
Web Components et Polymer 2 - GDG Algiers DevFest 2016 - 3 Décembre 2016
Web Components et Polymer 2 - GDG Algiers DevFest 2016 - 3 Décembre 2016Web Components et Polymer 2 - GDG Algiers DevFest 2016 - 3 Décembre 2016
Web Components et Polymer 2 - GDG Algiers DevFest 2016 - 3 Décembre 2016
 
Retour d'experience projet AngularJS
Retour d'experience projet AngularJSRetour d'experience projet AngularJS
Retour d'experience projet AngularJS
 
Softfluent speig mdday2010
Softfluent speig mdday2010Softfluent speig mdday2010
Softfluent speig mdday2010
 
XebiCon'17 : Entrevue avec Vue.js - Thomas Champion et Ludovic Ladeu
XebiCon'17 : Entrevue avec Vue.js - Thomas Champion et Ludovic LadeuXebiCon'17 : Entrevue avec Vue.js - Thomas Champion et Ludovic Ladeu
XebiCon'17 : Entrevue avec Vue.js - Thomas Champion et Ludovic Ladeu
 

Meetup Angular Paris - Feature Modules

  • 2. Mais qui sommes nous ? William KLEIN Développeur Web @InfiniteSquare Auteur Angular wklein@infinitesquare.com wi_klein willovent Daniel DJORDJEVIC Développeur Web @InfiniteSquare Auteur Angular ddjordjevic@infinitesquare.com seloriss Seloris
  • 4. Module Angular 4 Organiser et Consolider les éléments de notre application (composants, directives, pipes, services, etc…) Décorateur @NgModule declarations imports providers bootstrap exports
  • 6. Et les Feature Modules ??? 6 Améliore la lisibilité et la maintenabilité du code  En structurant naturellement l’application Améliore les temps de chargement de l’application grâce au Lazy Loading  En déférant le chargement des modules Regroupement des éléments d’un même scope fonctionnel
  • 7. Les Feature Modules 7 Les features module doivent être agnostique de la platforme  Import de CommonModule et non BrowserModule La propriété exports permet d’exposer les éléments du module
  • 9. Qu’est-ce que le lazy loading? 9 L’application est divisée en un ensemble de feature modules  On ne charge que les modules nécessaires au lancement de l’application  Les modules sont ensuite chargés à la demande Des paquets moins gros donc chargés plus rapidement
  • 10. Exporter les routes du feature module 10 Chaque feature est responsable de ses routes (définies dans un module de routing) Ne pas appeler RouterModule.forRoot mais plutôt RouterModule.forChild Import du module de routing dans le feature module Automatique avec @angular/cli ng g m mafeature --routing
  • 11. Déléguer le routing au feature module 11 Syntaxe : chemin/vers/fichier#NomDuModule Angular chargement le module lorsqu’il sera necessaire.
  • 12. Les services et le lazy loading
  • 13. Les services et le lazy loading 13 Les services ne sont pas scopés à un module, Sauf si celui-ci est lazy loadé. Plusieurs instances d’un même service peuvent être créées alors que ce n’est pas le comportement souhaité AppModule AuthModule FeatureModule AuthService import Lazy load AuthService 2 AuthService 1
  • 14. Solution : ModuleWithProviders 14 Les services ne sont plus declarés dans le Module, mais dans un ModuleWithProviders  Permet deux méthodes d’import
  • 15. Import depuis un module racine 15 Import en utilisant la méthode forRoot() Les services sont fournis par le Feature Module
  • 16. Import depuis un Feature Module 16 Import en utilisant la méthode classique Les services ne sont pas fournis, on utilise les courants
  • 18. Merci pour votre attention ! 18 Sources : https://github.com/Seloris/meetup-featureModule

Notas do Editor

  1. Présenter nous + IS Will
  2. Daniel
  3. Daniel
  4. Daniel
  5. Daniel
  6. Daniel
  7. Will
  8. William
  9. William
  10. William
  11. Will
  12. William AppModule et AuthModule partage le même AuthService. FeatureModule dispose d’une autre instance
  13. William
  14. William
  15. William
  16. Daniel