Backbone.Radio:命令和请求对事件的好处是什么

tld*_*ldr 4 javascript backbone.js backbone-events marionette

似乎Backbone.Radio提供了2个新的抽象 - 命令和请求.它们与Backbone.Events非常相似,只是它们只能有1个用户.是这样,如果是这样的话,它们对事件有什么好处?

我计划将Backbone.Events/Radio与React.js一起使用,如果有帮助的话.

Mar*_*ann 5

我实际上并没有使用Backbone.Radio,而是广泛使用Backbone.wreqr https://github.com/marionettejs/backbone.wreqr,它提供了几乎相同的命令服务.

在我的使用中,事件和命令之间的区别是:

对于要工作的事件,事件的发送者和接收者必须同时存在并且彼此具有引用,并且接收者必须能够正确地处理事件.在完全异步的浏览器环境中,这通常会出现问题,因为应用程序的不同部分同时运行.

命令允许您解耦发送方和接收方.一个对象,比如一个View A,可以简单地发送命令'update_user_details'.

我的第二个Object View B为'update_user_details'设置了一个命令处理程序,它将改变屏幕上的用户细节.

但是,如果View B尚不存在,或者尚未呈现,那该怎么办呢?在事件监听器模式中,您必须确保View A存在,它将对自身的引用传递给View B,然后在View B中附加事件监听器.

使用命令不是问题,View A发送命令,如果没有人设置了处理程序,那么没有任何不好的事情发生,该命令什么都不做.

当View B出现时,完全独立于View A,它设置了一个处理程序,并将响应所有未来的命令.

关于意图的最后一点说明:

可以通过这种方式考虑事件模式:I,View A刚刚完成了某些事情,任何有兴趣的人(事件监听器)都可以做他们喜欢的事情,我看A不关心你做什么.

在命令模式中:我查看A想要某人做某事,我不在乎是谁做的,我只是想把它做得对.