Angular Routing
● SPA: une application web accessible via une page web unique
● Le but est d’éviter le chargement d’une nouvelle page à chaque action
demandé
● Fluidifier l’expérience utilisateur
RouterModule
forRoot()
● Usage principal : Configure et fournit les services ou routes qui doivent être uniques et partagés
dans toute l'application.
● Contexte : Utilisé généralement dans le module racine de l'application (AppModule).
Caractéristiques :
● Fournit un service singleton (exemple : Router).
● Configure une instance unique d'une bibliothèque ou module.
● Ne doit être appelé qu'une seule fois dans l'application (généralement dans AppModule).
RouterModule
forChild()
● Usage principal : Configure et importe les modules pour des sous-modules ou des modules fonctionnels.
● Contexte : Utilisé pour définir des routes ou configurations spécifiques à un module enfant.
● Exemple : Configuration des routes spécifiques à une section de l'application.
Caractéristiques :
● N'ajoute pas de service singleton, mais configure uniquement des routes ou des composants pour un
sous-module.
● Utilisé pour des modules chargés de manière paresseuse (lazy-loaded).
● Peut être appelé plusieurs fois dans l'application.
Différences principales entre forRoot et forChild
Aspect forRoot() forChild()
Contexte Module racine (application Modules enfants ou
principale) sous-modules
Singleton Fournit des services partagés à Ne fournit pas de singleton
toute l’application
Configuration Unique Appelé une seule fois dans Peut être appelé plusieurs fois
l’application dans l’application
Exemple courant [Link](routes) [Link](routes)
Quand les utiliser?
1. forRoot()
● Lorsque vous configurez quelque chose d'unique pour toute l'application (comme les routes
principales ou un service global).
● Utilisé dans le AppModule.
2. forChild()
● Lorsque vous configurez des fonctionnalités ou routes spécifiques à un module enfant.
● Utilisé dans les modules fonctionnels ou spécifiques, souvent avec lazy loading.
Bonnes pratiques
● forRoot() : Toujours dans le AppModule.
● forChild() : Utilisé dans les sous-modules pour éviter des conflits et garantir une structure
modulaire.
Propriétés dans une Route
snapshot :
● Permet un accès immédiat aux données de route sans abonnement.
url :
● Retourne les segments de l'URL de la route courante.
params :
● Retourne les paramètres dynamiques définis dans la route.
queryParams :
● Retourne les paramètres de requête après le ? dans l'URL.
Propriétés dans une Route
data :
● Retourne des données statiques définies dans la configuration de la route.
paramMap :
● Retourne un ParamMap pour accéder facilement aux paramètres dynamiques de la route.
queryParamMap :
● Retourne un ParamMap pour accéder facilement aux paramètres de requête.