我目前正在使用ES6和Marionette v3重写我们的木偶代码库。最好能够在不违反德米特法的情况下处理人偶模块之间的通信
我创建了几个子模块(ProductShowRoute
,CartManager
等),这些都是从我的主App
开始的。
我想知道你们是如何管理模块之间的通信。在我们之前的Marionette应用程序中,通讯过于繁忙,并且使用Backbone.Wreqr
发送太多内容。
当用户将产品添加到购物车时,我们的ProductsModule
需要让CartModule
知道这一点。如何在不写太多意大利面代码的情况下组织这种沟通? Backbone.Radio
/Backbone.Wreqr
是很好的工具,但是如果使用不正确(或模块之间发生太多事情),很难知道哪些事件最终在哪里结束。
此外,我想知道你是如何改变路线。我读了一篇Derick Bailey的博客文章,他警告使用App.navigate(‘route’, { trigger: true })
,但在Marionette Wires中我看到这发生了几次。 trigger: true
真的这不好用吗?我们有什么替代方案?之前我们使用了Backbone.Wreqr
,它调用了每个模块的Router
并且改变了路线,但是这看起来像很多来回的通信。
非常感谢!
弗农