La technique du CoreModule

Une application Angular possède souvent un CoreModule qui contient les services de base de l’application. Comment le créer et comment l’utiliser ?

Créer un CoreModule

Un CoreModule est un simple module Angular, dont le rôle est de déclarer les providers singletons de l’application.

Le nom “CoreModule” est une simple convention, et vous n’êtes pas obligé de créer un tel module dans votre projet.

Le CoreModule contient généralement des providers (services) très transversaux, susceptibles d’être utilisés partout dans l’application et qui doivent impérativement être des singletons (c. à d. exister en un seul exemplaire).

En plus de ces services, le CoreModule peut parfois contenir des declarations exportées qu’on ne veut rendre disponibles que dans AppModule.

Exemple de CoreModule :

@NgModule({
  providers: [ AuthService, ModalService...],

  // Éventuellement :
  declarations: [ ModalComponent ],
  exports: [ ModalComponent ],
})
export class CoreModule {}

Utiliser le CoreModule

Le CoreModule ne doit être importé qu’une seule fois dans l’application, par le module AppModule.

@NgModule({
  imports: [ BrowserModule, CoreModule... ],
  // ...
})
export class AppModule {}

En effet, puisque les providers d’un module sont globaux, il suffit d’importer CoreModule une fois pour rendre ses providers disponibles partout dans l’application (= dans TOUS LES MODULES de l’application).

Si CoreModule contenait des declarations exportées, ces dernières ne seraient donc accessibles que dans AppModule, ce qui limite l’usage de ces déclarations aux éléments qui ne doivent être affichés que dans AppModule.

Informations

Tags : ngmodule

Dernière mise à jour :

Auteur : AngularChef

Qualité : Bonne