【发布时间】:2020-12-07 17:29:02
【问题描述】:
订阅组件中的查询参数时,需要退订吗?我正在努力避免内存泄漏。
订阅unsubscribe()的变量
subscription$: Subscription
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.subscription$ = this.route.queryParams.subscribe(
(params: any): void => {
// ... Do stuff here ...
}
)
}
ngOnDestroy() {
if (this.subscription$ !== undefined || this.subscription$ !== null) {
this.subscription$.unsubscribe()
}
}
unsubscribe() 的无变量订阅
constructor(private route: ActivatedRoute) {}
ngOnInit() {
this.route.queryParams.subscribe(
(params: any): void => {
// ... Do stuff here ...
}
)
}
哪个是更好的解决方案?
【问题讨论】:
-
queryparamsis deprecated, you shouldn't be using this 两个较旧的属性仍然可用,但是,它们的替代品更可取,因为它们可能在未来的 Angular 版本中被弃用。 -
路由销毁时
ActivatedRoute被清空,无需手动退订。
标签: angular typescript angular-router angular2-observables rxjs-observables