Introduction aux Modules dans Angular
Imaginez que vous développez une application. Au début, il ne s'agit que d'un seul fichier — comme main.ts. Mais au fur et à mesure, vous ajoutez d'autres éléments : composants, services, styles, logique, gestion des données, authentification, etc.
Rapidement, la situation devient complexe — il devient difficile de savoir ce qui est utilisé où et comment tout est relié.
C'est à ce moment-là que la modularité devient essentielle.
Qu'est-ce qu'un module dans Angular ?
Un module est une manière de regrouper les parties liées de votre application en blocs distincts, faciles à maintenir, à réutiliser et à tester.
Considérer un module comme une boîte où sont regroupés tous les éléments liés à une fonctionnalité spécifique. Par exemple, tous les éléments relatifs à l'utilisateur peuvent être placés dans un UserModule.
Dans Angular, un module est simplement une classe annotée avec le décorateur @NgModule, comme ceci :
app-component.ts
Explication de chaque partie :
-
declarations– liste les composants, directives et pipes appartenant à ce module ; -
imports– importe d'autres modules dont celui-ci dépend (commeBrowserModulepour l'accès au DOM) ; -
providers– déclare les services (pour l'injection de dépendances) disponibles dans ce module ; -
bootstrap– définit le composant principal à charger au démarrage de l'application (généralementAppComponent).
En résumé, un module définit ses dépendances, ce qu'il met à disposition des autres modules, etc.
Tout composant interagissant avec ce module peut utiliser les services et autres ressources qu'il fournit.
Pourquoi nous n'utilisons pas les modules pour l'instant
À partir d’Angular 14, une nouvelle alternative est disponible : les composants autonomes.
Ceux-ci permettent de créer et d’utiliser un composant sans l’ajouter à un module. Nous les avons d’ailleurs utilisés tout au long de notre projet, et ils ressemblent à ceci :
task-component.ts
Il s’agit d’un composant autonome — ce qui signifie qu’il n’a pas besoin d’être listé dans les déclarations d’un NgModule. À la place, tout ce dont il a besoin (comme les directives, pipes ou autres modules) est importé directement via la propriété imports à l’intérieur du composant lui-même.
Cela allège et rend la structure de votre projet plus flexible — particulièrement utile pour les petites applications ou les blocs de fonctionnalités isolés.
Nous approfondirons les composants autonomes plus tard dans cette section.
Même si les nouveaux projets Angular n'exigent plus de modules, vous les rencontrerez encore fréquemment :
-
Les anciennes applications d'entreprise sont entièrement construites à l'aide de modules ;
-
De nombreux tutoriels, documentations et exemples utilisent encore
NgModule; -
Certaines bibliothèques tierces et frameworks d'interface utilisateur utilisent toujours l'approche basée sur les modules.
C'est pourquoi nous allons consacrer un peu de temps à comprendre le fonctionnement de NgModule — afin que vous puissiez lire et maintenir des bases de code plus anciennes en toute confiance.
1. Quel est le principal objectif d’un module dans Angular ?
2. Que contient généralement le décorateur @NgModule ?
Merci pour vos commentaires !
Demandez à l'IA
Demandez à l'IA
Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion
Can you explain the main differences between modules and standalone components in Angular?
When should I use modules instead of standalone components?
Are there any best practices for organizing modules in larger Angular projects?
Awesome!
Completion rate improved to 3.13
Introduction aux Modules dans Angular
Glissez pour afficher le menu
Imaginez que vous développez une application. Au début, il ne s'agit que d'un seul fichier — comme main.ts. Mais au fur et à mesure, vous ajoutez d'autres éléments : composants, services, styles, logique, gestion des données, authentification, etc.
Rapidement, la situation devient complexe — il devient difficile de savoir ce qui est utilisé où et comment tout est relié.
C'est à ce moment-là que la modularité devient essentielle.
Qu'est-ce qu'un module dans Angular ?
Un module est une manière de regrouper les parties liées de votre application en blocs distincts, faciles à maintenir, à réutiliser et à tester.
Considérer un module comme une boîte où sont regroupés tous les éléments liés à une fonctionnalité spécifique. Par exemple, tous les éléments relatifs à l'utilisateur peuvent être placés dans un UserModule.
Dans Angular, un module est simplement une classe annotée avec le décorateur @NgModule, comme ceci :
app-component.ts
Explication de chaque partie :
-
declarations– liste les composants, directives et pipes appartenant à ce module ; -
imports– importe d'autres modules dont celui-ci dépend (commeBrowserModulepour l'accès au DOM) ; -
providers– déclare les services (pour l'injection de dépendances) disponibles dans ce module ; -
bootstrap– définit le composant principal à charger au démarrage de l'application (généralementAppComponent).
En résumé, un module définit ses dépendances, ce qu'il met à disposition des autres modules, etc.
Tout composant interagissant avec ce module peut utiliser les services et autres ressources qu'il fournit.
Pourquoi nous n'utilisons pas les modules pour l'instant
À partir d’Angular 14, une nouvelle alternative est disponible : les composants autonomes.
Ceux-ci permettent de créer et d’utiliser un composant sans l’ajouter à un module. Nous les avons d’ailleurs utilisés tout au long de notre projet, et ils ressemblent à ceci :
task-component.ts
Il s’agit d’un composant autonome — ce qui signifie qu’il n’a pas besoin d’être listé dans les déclarations d’un NgModule. À la place, tout ce dont il a besoin (comme les directives, pipes ou autres modules) est importé directement via la propriété imports à l’intérieur du composant lui-même.
Cela allège et rend la structure de votre projet plus flexible — particulièrement utile pour les petites applications ou les blocs de fonctionnalités isolés.
Nous approfondirons les composants autonomes plus tard dans cette section.
Même si les nouveaux projets Angular n'exigent plus de modules, vous les rencontrerez encore fréquemment :
-
Les anciennes applications d'entreprise sont entièrement construites à l'aide de modules ;
-
De nombreux tutoriels, documentations et exemples utilisent encore
NgModule; -
Certaines bibliothèques tierces et frameworks d'interface utilisateur utilisent toujours l'approche basée sur les modules.
C'est pourquoi nous allons consacrer un peu de temps à comprendre le fonctionnement de NgModule — afin que vous puissiez lire et maintenir des bases de code plus anciennes en toute confiance.
1. Quel est le principal objectif d’un module dans Angular ?
2. Que contient généralement le décorateur @NgModule ?
Merci pour vos commentaires !