Définition d'un Module
Angular propose un concept de modules afin de mieux structurer le code et faciliter la réutilisation et le partage.
Attention à ne pas confondre les modules Angular avec les modules ES2015 / TypeScript.
Un module Angular est un mécanisme permettant de :
regrouper des composants (mais aussi des services, directives, pipes etc...),
définir leurs dépendances,
et définir leur visibilité.
Un module Angular est défini simplement avec une classe (généralement vide) et le décorateur NgModule
.
declarations
declarations
Définit la liste des composants (ou directives, pipes etc...) contenus dans ce module.
exports
exports
Définit la liste des composants pouvant être utilisés par les modules qui importent celui-ci.
Les composants non-exportés ne peuvent être utilisés que par les composants contenus dans le module.
Pour exporter un composant lors de sa génération par Angular CLI, il faut ajouter l'option --export
: yarn ng generate component --export book/book-preview
.
Pour éviter de lutter contre les oublis, une astuce consiste à ajouter un "script" à votre fichier package.json
pour unifier la façon de générer vos composants.
imports
imports
Définit la liste des dépendances du module. Il s'agit généralement de la liste des modules contenant les composants utilisés par les composants de la section declarations
.
Bonnes Pratiques
La convention est de regrouper tous les composants dans le même dossier que le module.
Evitez les sous-arborescences (définition de modules à l'intérieur d'autres modules etc...).
Flat is better than nested.
Angular CLI - Generate Module
Vous pouvez générer un module avec la commande suivante :
Live Template
Pensez à utiliser des "live templates" sur votre IDE !
Dernière mise à jour