Angular 您必须取消订阅组件中的查询列表吗?

Angular 您必须取消订阅组件中的查询列表吗?,angular,rxjs,observable,Angular,Rxjs,Observable,使用@ContentChildren或@ViewChildren装饰程序侦听DOM元素的更改时。我必须取消订阅查询列表吗 例如: @Component({...}) export class ParentComponent implements AfterContentInit { @ContentChildren(ChildComponent) public children: QueryList<ChildComponent>; public ngAft

使用
@ContentChildren
@ViewChildren
装饰程序侦听DOM元素的更改时。我必须取消订阅
查询列表吗

例如:

@Component({...})
export class ParentComponent implements AfterContentInit {
    @ContentChildren(ChildComponent)
    public children: QueryList<ChildComponent>;

    public ngAfterContentInit(): void {
        this.children.changes.subscribe(() => ....);
    }
}
@组件({…})
导出类ParentComponent实现AfterContentInit{
@ContentChildren(ChildComponent)
公共儿童:QueryList;
public ngAfterContentInit():void{
this.children.changes.subscribe(()=>…);
}
}
上述情况会成为问题吗

更新:

我问的原因是我们不必取消订阅
@Output
装饰器。当组件被销毁时,它们会自动取消订阅


我找不到任何说明这与
QueryList

相同的文档。一般来说,当您的组件被销毁时,最好取消订阅您订阅的内容。在Angular中,可以在Ngondestory方法中执行此操作

import { Subscription } from 'rxjs';

@Component({...})

export class ParentComponent implements AfterContentInit, OnDestroy {
    @ContentChildren(ChildComponent)
    public children: QueryList<ChildComponent>;
    private childrenSubscription: Subscription;

    public ngAfterContentInit(): void {
        this.childrenSubscription = this.children.changes.subscribe(() => ....);
    }

    public ngOnDestroy(): void {
        this.childrenSubscription.unsubscribe();
    }
}
从'rxjs'导入{Subscription};
@组件({…})
导出类ParentComponent实现AfterContentInit、OnDestroy{
@ContentChildren(ChildComponent)
公共儿童:QueryList;
私人儿童订阅:订阅;
public ngAfterContentInit():void{
this.childrenSubscription=this.children.changes.subscription(()=>…);
}
公共Ngondestory():void{
此.childrenSubscription.unsubscribe();
}
}

您不必取消订阅QueryList。它是为你做的

请看这里:


作为一般规则,当组件销毁后Observable保持活动状态时,我将取消订阅。在大多数情况下都有效。

我知道如何取消订阅,但我想知道是否需要取消订阅。
@ContentChildren
装饰程序会自动为我们处理它吗?显示组件销毁时它会自动关闭。