2
我已經開始使用Backbone。通過listenTo跟蹤骨幹事件
在學習Backbone時,我知道使用.listenTo而不是.on的優點是listenTo允許「對象跟蹤事件」。
我沒有得到這句話想說什麼。那麼我只能看到.on和.listenTo之間的區別是關於語法的。
我已經開始使用Backbone。通過listenTo跟蹤骨幹事件
在學習Backbone時,我知道使用.listenTo而不是.on的優點是listenTo允許「對象跟蹤事件」。
我沒有得到這句話想說什麼。那麼我只能看到.on和.listenTo之間的區別是關於語法的。
考慮兩個呼叫:
this.model.on('change', this.some_method);
this.listenTo(this.model, 'change', this.some_method);
在第一種情況:
this.model
知道有人在監聽'change'
事件,但它不知道是誰。this
不知道它在聽什麼,除非您明確跟蹤您所做的電話號碼爲on
。在第二種情況:
this.model
知道有人在監聽'change'
事件,但它不知道是誰。this
知道它正在收聽來自this.model
的事件。所以是的,語法是不同的,但主要的區別是誰知道誰在傾聽:與on
,只有聽到的東西知道有一個監聽器;與listenTo
,聽衆也知道他們在聽什麼。
如果您想停止收聽活動,區別很重要。如果您使用的是on
,那麼您必須保留自己的收聽列表,以便您可以off
;如果您使用的是listenTo
,那麼listenTo
會跟蹤這一點,您可以簡單地使用stopListening
。
例如,View#remove
看起來是這樣的:
remove: function() {
this.$el.remove();
this.stopListening();
return this;
}
,所以你可以調用view.remove()
,它會自動清理您有任何事件綁定(只要你使用listenTo
)和殭屍聽衆的機會大幅減少。
O!我知道了。感謝您的指導。我在Backbone Home網站本身沒有找到這樣的細節。 –
@iCybernetics:在有'listenTo'方法之前使用Backbone時,'listenTo'的效用更容易被看到。 –
是的!獲取了Backbonejs.org提供的Change-log中的所有信息 –