What is the difference between ActivatedRouteSnapshot
and ActivatedRoute
in Angular 4? It's my understanding that ActivatedRouteSnapshot
is a child of ActivatedRoute
, meaning that ActivatedRoute
contains ActivatedRouteSnapshot
.
Incidentally, I tried running a Google search for an answer to this question, but I didn't find any of the search results to be understandable.
Thank you!
Since
ActivatedRoute
can be reused,ActivatedRouteSnapshot
is an immutable object representing a particular version ofActivatedRoute
. It exposes all the same properties asActivatedRoute
as plain values, whileActivatedRoute
exposes them as observables.Here is the comment in the implementation:
If a router reuses a component and doesn't create a new activated route, you will have two versions of
ActivatedRouteSnapshot
for the sameActivatedRoute
. Suppose you have the following routing configuration:Now you navigate to:
You will have the param in the
activatedRoute.snapshot.params.id
as1
.Now you navigate to:
You will have the param in the
activatedRoute.snapshot.params.id
as2
.You can see it by implementing the following: