单一责任原则和Backbone.View

时间:2015-10-05 12:55:36

标签: javascript backbone.js marionette single-responsibility-principle

我使用Backbone.js。我有popup1,它创建了popup2。 popup2是类似组件的,当它关闭时会触发事件'school_address:saved'。我需要在'school_address:saved'事件上向服务器发送请求。我把处理程序放在popup1的视图中(它的实例仍然存在),但是我不确定这个地方是否合适,因为视图负责模板UI逻辑,不是吗?

您认为此类代码的最佳位置是什么?如果我使用Marionette.js会是什么?

1 个答案:

答案 0 :(得分:0)

我们已经使用BackboneJS几年了,并且对过去的类似案例感到疑惑......

由于BackboneJS(与其他JS框架不同)没有强制执行任何常见的方式,我通常会说这实际上取决于您的实现和应用程序流。

但是,由于这些是弹出窗口/"应用程序模式",我认为如果根据您当前的需要考虑以下内容会有所帮助:

  1. 如果只有 popup1 可以实例化并显示 popup2 ,那么让popup1听取popup2触发的事件。

  2. 如果您预见到您的应用程序流程发生了变化,并且可能在其他地方或者独立地显示了popup2,我建议您从更高级别的视图(可能是您有路由)中侦听popup2事件。通过这种方式,您的两个弹出窗口都将是独立的,并且您可以更轻松地回收其代码,并在应用程序增长时支持更大的灵活性。