Quelle est la différence entre ActivatedRoute et ActivatedRouteSnapshot en Angular4
Quelle est la différence entre ActivatedRouteSnapshot et ActivatedRoute en angle 4? Je crois comprendre que ActivatedRouteSnapshot est un enfant de ActivatedRoute , ce qui signifie que ActivatedRoute contient ActivatedRouteSnapshot .
soit dit en passant, J'ai essayé D'exécuter une recherche Google pour une réponse à cette question, mais je n'ai trouvé aucun des résultats de recherche pour être compréhensible.
Merci!
1 réponses
depuis ActivatedRoute peut être réutilisé , ActivatedRouteSnapshot est un objet immuable représentant une version particulière de ActivatedRoute . Il expose toutes les mêmes propriétés que ActivatedRoute comme valeurs simples, tandis que ActivatedRoute les expose comme observables.
voici le commentaire dans la mise en œuvre:
export class ActivatedRoute {
/** The current snapshot of this route */
snapshot: ActivatedRouteSnapshot;
si un routeur réutilise un composant et ne crée pas de nouveau activé route, vous aurez deux versions de ActivatedRouteSnapshot pour le même ActivatedRoute . Supposons que vous ayez la configuration de routage suivante:
path: /segment1/:id,
component: AComponent
maintenant vous naviguez vers:
/segment1/1
Vous aurez le param dans le activatedRoute.snapshot.params.id comme 1 .
maintenant vous naviguez vers:
/segment1/2
Vous aurez le param dans le activatedRoute.snapshot.params.id comme 2 .
You peut le voir en mettant en œuvre ce qui suit:
export class AComponent {
constructor(r: ActivatedRoute) {
r.url.subscribe((u) => {
console.log(r.snapshot.params.id);
});