Angular文档说
ngOnDestroy():在Angular破坏指令/组件之前进行清理。取消订阅Observable并分离事件处理程序以避免内存泄漏。 在Angular破坏指令/组件之前调用。
一些开发人员说组件属性(类变量)也应该设置为null以避免内存泄漏。这是真的吗?
export class TestComponent implements OnInit, OnDestroy {
public name: string;
constructor() { }
ngOnInit() {
this.name = 'John';
}
ngOnDestroy() {
// is this code really necessary.
this.name = null;
}
}
答案 0 :(得分:7)
不,你不需要那个。 Component只是一个类,当它显示时,就会创建一个实例。当组件被销毁时,关联的对象将被保留而不会被引用,并且它将尽快被垃圾收集。
正如文档所说,你只需要在那些情况下使用Observables和事件处理程序,因为如果它们处于活动状态,它们就不会被垃圾收集器删除。
取消订阅Observable并分离事件处理程序以避免记忆 泄漏