我使用的是提线木偶v0.9.10。最近我遇到了一个问题。所以我看到在新的提线木偶中,某些功能被转移到了不同的插件中
我只是想知道使用它比以前版本的有什么优势
从Marionette中提取其他存储库的目的有两个:
- 为更大的Backbone开发社区提供更多价值
- 允许Marionette的发布时间表,该时间表在所有情况下都不直接与这些组件绑定
第一个原因是:有很多人对这些插件所涵盖的每个领域都表示了直接的兴趣。我已经回答了许多关于SO和社区其他部分的问题,这些问题涉及去耦架构、子视图管理、事件管理等。通过将这些代码块拆分到单独的存储库中,更大的骨干社区可以利用这一功能。
第二个原因是:拥有独立的存储库和插件可以让我们对特定的功能子集进行更改,而不必对Marionette本身进行完整的发布/版本升级。例如,我可以将BabySitter从0.0.1版本移动到v1.0版本,而无需更改Marionette的任何代码。使发布周期解耦可以在提供更新和修复方面提供更大的灵活性。
最后,这些库的分离在Marionette的各个部分之间提供了一个更好的抽象层。我们不再试图将此功能直接编码到想要使用它的对象中。相反,我们必须使用单独的库,并将其适当地合并到Marionette中。核心的Marionette。View是一个很好的例子,说明了事情出了问题,以及我们为什么要这样做。《木偶戏》中有太多不同的部分。视图-太多没有真正关联的东西,但我们希望在其他视图中使用它。将库拆分为多个库可以解决这个问题。
就管理这些依赖关系而言,您至少有4个选项。
- 从http://marionettejs.com-它包含了开始的所有内容(主干、下划线、jquery、所有先决条件、提线木偶等)
- 在一个文件中获取一个"捆绑"构建,其中包含所有先决条件和提线木偶
- 抓住各个部分和"核心"构建——自己把这些部分放在一起,自己管理版本
- 使用像JamJS或Bower这样的包管理器
关于使用Marionette的新版本的优势:错误修复、新功能、更稳定的代码、更一致的API、支持开发的更新更好的对象,以及对当前版本的支持。
如果旧版本能满足你的所有需求,那么坚持使用它也没问题。目前,网络上几乎每一个小版本的提线木偶都在运行实时应用程序。这些应用程序可能不需要更新,所以它们会坚持使用现有的应用程序。但老实说,旧版本不会得到太多支持。
在v1.0最终发布之前,向后兼容性和支持几乎不存在。一旦v1.0版本下降,我们将在短时间内提供错误修复,但会在新版本中推进新功能。
HTH-