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);
});