Le rôle du CoreModule est d’alléger le module racine de votre application. Si vous avez déjà travaillé sur de petits projets, vous aurez sûrement remarqué que le module racine sert souvent de débarras : on y déclare tous nos composants, on ajoute les librairies tierces utilisées dans le projet, etc.
Cependant, ce n’est pas son rôle.
Son rôle est uniquement de démarrer votre application, et c’est tout.
L’équipe d’Angular a donc proposé plusieurs recommandations pour remédier au problème :
- Créer un module nommé CoreModule dans
votre projet, afin de décharger votre module racine des importations globales.
- Importer le CoreModule uniquement dans le
module racine AppModule (n’importez jamais le CoreModule dans un
autre module).
- Importer tous vos services dans le CoreModule.
Ils seront accessibles dans tout votre projet, et il n’y aura qu’une seule
instance de chaque service qui existera dans l’application. C’est très pratique
si vous développez un service de partage des données entre plusieurs
composants, car vous serez certains qu’il n’y a qu’un seul état possible dans
votre application à un certain instant, étant donné qu’il existe une unique instance
de votre service.
- Vous pouvez également ajouter des composants
globaux dans votre application. Par exemple, un composant représentant une
icône de chargement, un pied de page, ou une barre de navigation. Pour faire
simple, il s’agit des composants que vous n’utiliserez que dans le template
racine app.component.html.