我什么时候需要在我的组件中调用 removeEventListener?

When do I need to call removeEventListener in my components?

文档中提到我可以使用组件的删除功能来删除我添加的事件监听器。我需要一直这样做吗?还是在删除实体时删除事件?

我知道我需要删除我在其他实体上添加的事件。但是如果组件给它的实体添加了点击事件。删除实体时是否会删除该点击事件?或者这会导致内存泄漏吗?

干杯

彼得

这里要考虑三种情况:

  1. 如果 DOM 元素(如 A-Frame 的 <a-entity/>)被分离,并且您没有在任何地方的变量中存储对该元素的引用,那么您不需要取消绑定你的事件监听器 — the listeners are cleaned up automatically.

  2. 如果您要存储该元素以便稍后重新附加它,那么您可能希望删除 remove() 中的侦听器,以便下次 init() 运行时,您不要开始接收重复事件。

  3. 最后一种情况,可能也是最重要的一种情况是,如果您的组件将侦听器绑定到它自己以外的元素(canvasdocumentbody 例如)那么你一定要清理你的听众,这样你的回调就不会为不再存在于场景中的组件触发。