2013-09-30 34 views
5

Marionette的Application.vent是什麼? Application對象已經延伸Backbone.Events,這樣我就可以寫:依靠Application的事件mixin和Application.vent有什麼區別?

window.app = new Backbone.Marionette.Application(); 
app.on("my:event", function() { console.log(arguments); }); 
app.trigger("my:event"); 

更容易比:

window.app = new Backbone.Marionette.Application(); 
app.vent.on("my:event", function() { console.log(arguments); }); 
app.vent.trigger("my:event"); 

我讀過的來源,我不能看出其中的差別,但這並不意味着沒有一個,我敢肯定有一個很好的理由,就是這樣做。

回答

3

雖然Application.vent的功能不重疊Application的內置事件,它增加了不僅僅是對/觸發事件機制簡單的更多的功能,因爲它是Backbone.Wreqr一個實例。這增加了命令事件和請求/響應機制,以允許模塊更容易地相互通信。

它仍然只是事件的核心,但它旨在使模塊間的通信更容易遵循。

+0

好吧,但是當我想要RequestResponse或Command行爲而不是簡單事件時,沒有任何東西阻止我使用'Application.vent'嗎?或者他們以某種我不瞭解的方式進行互動? – Crisfole

+0

正確。 Application.vent的行爲與Application的簡單事件處理是分開的,因此您可以根據自己的需要選擇使用哪一種。 –

相關問題