Module de fonctionnalité | Des lignes directrices |
---|---|
Domain |
Les modules de fonctionnalités de domaine offrent une expérience utilisateur dédiée à un domaine d'application particulier,
comme la modification d'un client ou la passation d'une commande. Ils ont généralement un composant supérieur qui joue le rôle de racine de fonctionnalité et de composant privé, les sous-composants de prise en charge en descendant. Les modules de fonctionnalité de domaine sont principalement constitués de déclarations. Seul le composant supérieur est exporté. Les modules de fonctionnalité de domaine ont rarement des fournisseurs. Lorsqu'ils le font, la durée de vie des services fournis doit être identique à celle du module. Les modules de fonctionnalité de domaine sont généralement importés une seule fois par un module de fonctionnalité plus grand. Ils peuvent être importés par la racine AppModule d'une petite application dépourvue de routage. |
Routed |
Les modules de fonctionnalité routés sont des modules de fonctionnalité de domaine dont les composants
principaux sont les cibles des itinéraires de navigation du routeur. Tous les modules paresseux chargés sont par définition des modules routés. Les modules de fonctions routées n'exportent rien car leurs composants n'apparaissent jamais dans le modèle d'un composant externe. Un module de fonctionnalité routé chargé paresseux ne doit pas être importé par aucun module. Cela provoquerait un chargement enthousiaste, contrecarrant le but du chargement paresseux. Cela signifie que vous ne les verrez pas mentionnés parmi les AppModule importations. Un module de fonctionnalité routé chargé doit être importé par un autre module afin que le compilateur découvre ses composants. Les modules de fonctionnalité routés ont rarement des fournisseurs pour des raisons expliquées dans chargement de modules de fonctionnalité paresseux. Lorsqu'ils le font, la durée de vie des services fournis doit être identique à celle du module. Ne fournissez pas de services singleton à l'échelle de l'application dans un module à fonctionnalités routées ou dans un module importé par le module routé. |
Routing |
Un module de routage fournit une configuration de routage pour un autre module et sépare les problèmes de routage de son module compagnon. Un module de routage effectue généralement les tâches suivantes:
|
Service |
Les modules de service fournissent des services utilitaires tels que l'accès aux données et la messagerie.
Idéalement, ils sont entièrement constitués de fournisseurs et n'ont aucune déclaration.
Angular HttpClientModule est un bon exemple de module de service.La racine AppModule est le seul module devant importer des modules de service. |
Widget |
Un module de widget met des composants, des directives et des canaux à la disposition des modules externes.
De nombreuses bibliothèques de composants d'interface utilisateur tierces sont des modules de widgets. Un module de widget doit être entièrement constitué de déclarations, la plupart exportées. Un module de widget devrait rarement avoir des fournisseurs. Importez des modules de widgets dans tous les modules dont les modèles de composants ont besoin des widgets. |
Module de fonctionnalité | Les déclarations | Fournisseurs | Exportations | Importé par |
---|---|---|---|---|
Domain | Oui | Rare | Composant supérieur | Caractéristique, AppModule |
Routed | Oui | Rare | Non | Aucun |
Routing | Non | Oui (gardes) | RouteurModule | Caractéristique (pour le routage) |
Service | Non | Oui | Non | AppModule |
Widget | Oui | Rare | Oui | Fonctionnalité |