我发现很多例子中 ActivatedRoute
Observable 像 params
或 url
被订阅但没有取消订阅。
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.route.params
// (+) converts string 'id' to a number
.switchMap((params: Params) => this.service.getHero(+params['id']))
.subscribe((hero: Hero) => this.hero = hero);
}
- 路由对象和订阅是否会自动销毁并在每次创建组件时重新创建?
- 我必须关心取消订阅那些
Observable
吗? - 如果不是,您能否解释一下
Router
.routerState
中的 ActivatedRoute 对象树会发生什么情况?
最佳答案
没有
订阅组件中的可观察对象时,您几乎总是安排在组件销毁时取消订阅。
有一些少数特殊的可观察到的情况是没有必要的。 ActivatedRoute observables 属于异常(exception)。
ActivatedRoute 及其可观察对象与路由器本身隔离。当不再需要路由组件时,路由器会销毁它,注入(inject)的 ActivatedRoute 也会随之消失。
请随时退订。这是无害的,绝不是坏习惯。
关于angular - 我是否必须取消订阅 ActivatedRoute(例如 params)可观察量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41138081/