Angular4中的ActivatedRoute和ActivatedRouteSnapshot有什么区别

2024-01-03

有什么区别ActivatedRouteSnapshot and ActivatedRoute在 Angular 4 中?我的理解是ActivatedRouteSnapshot是一个孩子ActivatedRoute, 意思是ActivatedRoute包含ActivatedRouteSnapshot.

顺便说一句,我尝试运行谷歌搜索来寻找这个问题的答案,但我没有发现任何搜索结果是可以理解的。

谢谢你!


Since ActivatedRoute 可以重复使用 https://stackoverflow.com/questions/48155804/angular-routing-instance-creation-vs-instance-activation/48157720#48157720, ActivatedRouteSnapshot是一个不可变对象,表示特定版本 of 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 as 1.

现在您导航到:

/segment1/2

您将在activatedRoute.snapshot.params.id as 2.

您可以通过执行以下命令来查看它:

export class AComponent {
  constructor(r: ActivatedRoute) {    
    r.url.subscribe((u) => {
      console.log(r.snapshot.params.id);
    });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular4中的ActivatedRoute和ActivatedRouteSnapshot有什么区别 的相关文章

随机推荐