ActivatedRouteSnapshot
和 Angular 4 中的 ActivatedRoute
有什么区别?据我了解,ActivatedRouteSnapshot
是 ActivatedRoute
的子项,这意味着 ActivatedRoute
包含 ActivatedRouteSnapshot
。
顺便说一下,我尝试运行 Google 搜索来寻找这个问题的答案,但我没有发现任何可以理解的搜索结果。
谢谢!
最佳答案
自 ActivatedRoute
can be reused , ActivatedRouteSnapshot
是一个不可变对象(immutable对象),表示 ActivatedRoute
的特定版本。它将所有与 ActivatedRoute
相同的属性公开为普通值,而 ActivatedRoute
将它们公开为可观察对象。
下面是实现中的注释:
export class ActivatedRoute {
/** The current snapshot of this route */
snapshot: ActivatedRouteSnapshot;
如果一个路由器重用了一个组件并且没有创建一个新的激活路由,你将有两个版本的 ActivatedRouteSnapshot
用于相同的 ActivatedRoute
。假设您有以下路由配置:
path: /segment1/:id,
component: AComponent
现在您导航到:
/segment1/1
activatedRoute.snapshot.params.id
中的参数 1
。
现在您导航到:
/segment1/2
activatedRoute.snapshot.params.id
中的参数 2
。
您可以通过执行以下操作来查看它:
export class AComponent {
constructor(r: ActivatedRoute) {
r.url.subscribe((u) => {
console.log(r.snapshot.params.id);
});
关于angular - Angular4中ActivatedRoute和ActivatedRouteSnapshot有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46050849/