来自Polymer documentation关于事件监听器:
使用自动节点查找和便捷方法listen和> UNLISTEN。
Reactjs
如果您必须添加一个侦听器,则需要强制删除它。这通常在附加和分离的回调中完成。如果使用侦听器对象或带注释的事件侦听器,Polymer会自动添加和删除事件侦听器。
问题:
为什么仅在this.listen(this.$.myButton, 'tap', 'onTap');
this.unlisten(this.$.myButton, 'tap', 'onTap');
The listener callbacks are invoked with this set to the element instance.
之后监听本地DOM中的元素事件,然后在attached()
时删除它们很重要?
当观察到的DOM对象被销毁时,是不是会自动删除事件侦听器?
当你在light DOM中听取元素的事件时,这也适用吗?
答案 0 :(得分:2)
Polymer仅删除它自己添加的事件侦听器。如果你自己添加事件监听器(命令性),你需要自己删除它们。 如果事件侦听器引用代码,则代码可能无法收集垃圾。
答案 1 :(得分:2)
基本上,它只是最好的做法。较旧的浏览器无法正确处理旧事件的删除,如果函数具有范围引用,则可能导致内存泄漏。我认为这是一个符合&#34的惯例;比抱歉更安全。"