javascript - tutorial - github backbone
Backbone 0.9.9: Diferencia entre listenTo y on (2)
Estoy tratando de aprender los nuevos cambios que hicieron en Backbone 0.9.9.
Actualmente tengo problemas para entender la diferencia entre listenTo
y on
:
escucha a
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>'');
}
});
en
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>'');
}
});
He oído que listenTo
permite con stopListening
darse de baja de todos los eventos cuando, por ejemplo, se elimina la vista para evitar pérdidas de memoria.
¿Es esta la única razón?
Cuando crea una vista, tanto listenTo
como on
add event handling. Sin embargo, cuando se destruye la vista, la llamada listenTo
eliminará automáticamente el controlador de eventos . Esto evita pérdidas de memoria y escuchas de eventos zombies.
Por lo tanto, utilícelo si desea administrar el manejador usted mismo. Solo asegúrate de off
. De lo contrario, llame a listenTo
.
listenTo
y stopListening
vinieron de la comunidad, básicamente. Ayudan a facilitar el enlace y la desvinculación de eventos.
Hay una gran cantidad de documentación existente y publicaciones de blog que rodean la idea, incluidas las cosas que he escrito sobre el tema.
Johnny Oshika es la primera persona que vi usando esta técnica. Originalmente se publicó como respuesta a una pregunta de aquí: Backbone.js: repoblar o recrear la vista?
Puedes leer lo que he escrito sobre esto, aquí: