今天我了解到Backbone.View的listenTo
方法用于监听事件trigger
- 由Backbone模型或集合中的更改。它不是为了侦听DOM事件而设计的。
提出了以下问题。 Backbone文档说,当Backbone视图为remove
时,它会自动取消订阅它通过listenTo
收听的所有事件。它没有具体提到视图放在DOM元素上的监听器的命运。
那么当正在删除侦听DOM事件的视图时会发生什么?以下两种情况之间有什么区别吗?
视图有一个events
对象,其中包含正在收听的视图$el
的子节点上的事件列表;
视图会侦听一些任意DOM元素,而不一定是视图$el
的子元素。这种情况与前一种情况有什么不同吗?
视图的侦听器在删除视图时是否会自动取消订阅DOM事件,还是应该手动取消订阅?
答案 0 :(得分:1)
视图有一个事件对象,其中包含正在监听的视图$ el的子节点上的事件列表;
当使用它的删除方法正确删除视图时,这些将被主干取消(删除)。
视图会侦听某些任意DOM元素,而不一定是视图
$el
的子元素。这种情况与前一种情况有什么不同吗?
使用骨干网没有内置的方法,不推荐使用。如果你自己这样做 - 一些元素持有事件监听器指向你的视图上哪些主干不知道的方法 - 你必须自己清理它们,否则它会创建僵尸视图(内存泄漏)