bod*_*ser 55 javascript events backbone.js backbone-events
我试图了解他们在Backbone 0.9.9中所做的新变化.
目前,我有问题理解之间的区别listenTo和on:
listenTo
var View = Backbone.View.extend({
tagName: "div",
intialize: function() {
this.listenTo(this.model, 'change', this.render);
},
render: function() {
this.$el.empty();
this.$el.append('<p>hello world</p>');
}
});
Run Code Online (Sandbox Code Playgroud)
上
var View = Backbone.View.extend({
tagName: "div",
intialize: function() {
this.model.on('change', this.render, this);
},
render: function() {
this.$el.empty();
this.$el.append('<p>hello world</p>');
}
});
Run Code Online (Sandbox Code Playgroud)
我听说listenTo允许stopListening取消订阅所有事件,例如删除视图以避免内存泄漏.
这是唯一的原因吗?
Ric*_*ard 53
当你创建一个视图,都listenTo和on添加事件处理.但是,当视图被销毁时,listenTo调用将自动删除事件处理程序.这可以防止内存泄漏和僵尸事件侦听器.
因此,on如果您想自己管理处理程序,请使用.请务必致电off.否则,打电话listenTo.
Der*_*ley 40
listenTo而stopListening来自社会,基本上是这样.它们有助于更轻松地绑定和取消绑定事件.
关于这个想法有很多现有的文档和博客文章,包括我在这个主题上写的东西.
Johnny Oshika是我看到使用这种技术的第一个人.它最初是作为StackOverflow问题的答案发布的:Backbone.js:重新填充或重新创建视图?
你可以在这里阅读我写的关于这个的内容: