tld*_*ldr 4 javascript backbone.js backbone-events marionette
似乎Backbone.Radio提供了2个新的抽象 - 命令和请求.它们与Backbone.Events非常相似,只是它们只能有1个用户.是这样,如果是这样的话,它们对事件有什么好处?
我计划将Backbone.Events/Radio与React.js一起使用,如果有帮助的话.
我实际上并没有使用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想要某人做某事,我不在乎是谁做的,我只是想把它做得对.
| 归档时间: |
|
| 查看次数: |
2318 次 |
| 最近记录: |