我在指令中有 3 个事件监听器,我在按钮切换和删除时添加和删除
private addListeners() {
this.mouseLeaveFunc = this.renderer.listen(this.el.nativeElement, 'mouseleave', () => {
});
this.mouseEnterFunc = this.renderer.listen(this.el.nativeElement, 'mouseenter', () => {
});
this.onClickFunc = this.renderer.listen(this.el.nativeElement, 'click', (event) => {
});
}
private removeListeners() {
if (this.mouseLeaveFunc) {
this.mouseLeaveFunc();
this.mouseEnterFunc();
this.onClickFunc();
}
}
监听器删除后,Angular 不再监听它们,但是比较第一次单击和第二次单击后获取的内存转储,我发现第二个有 9 个监听器(我在页面上有 3 个指令,所以 3 el x 3 个监听器)。
有什么想法是内存泄漏还是如何删除它们?