1

我正在使用 marionette v0.9.10 。最近我有一个问题。所以我看到在新的牵线木偶中,某些功能被移到了不同​​的插件中

  • Backbone.EventBinder
  • 骨干网.Wreqr
  • Backbone.BabySitter
  • 我只是想知道使用它比以前的版本有什么优势

    4

    1 回答 1

    1

    从 Marionette 中提取其他存储库的目的有两个:

    1. 为更大的 Backbone 开发社区提供更多价值
    2. 允许 Marionette 的发布计划在所有情况下都与这些组件不直接相关

    第一个原因:有很多人对这些插件所涵盖的每个领域都表达了直接的兴趣。我已经在 SO 和社区的其他地方回答了许多关于解耦架构、子视图管理、事件管理等的问题。通过将这些代码块拆分到单独的存储库中,更大的 Backbone 社区可以利用这个功能的。

    出于第二个原因:拥有单独的存储库和插件允许我们对特定的功能子集进行更改,而不必对 Marionette 本身进行完整的发布/版本升级。例如,我可以将 BabySitter 从 v0.0.1 移到 v1.0,而无需更改 Marionette 的任何代码。将发布周期解耦可以在交付更新和修复时提供更大的灵活性。

    最后,这些库的分离在 Marionette 的各个部分之间提供了更好的抽象层。我们不再想直接将此功能编码到想要使用它的对象中。相反,我们必须使用单独的库并将其适当地合并到 Marionette 中。核心 Marionette.View 是一个很好的例子,说明了问题以及我们为什么要这样做。Marionette.View 中有太多不同的部分 - 太多的东西并不真正相关,但我们希望它出现在其他视图之一中。将库拆分为多个库可以让我们解决这个问题。

    就管理这些依赖项而言,您至少有 4 个选项。

    1. 从http://marionettejs.com获取“预打包的构建” - 它包含所有入门内容(主干、下划线、jquery、所有先决条件、木偶等)
    2. 在一个文件中获取包含所有先决条件和木偶的“捆绑”构建
    3. 获取各个部分和“核心”构建 - 自己将各个部分组合在一起,并自己管理版本
    4. 使用像 JamJS 或 Bower 这样的包管理器

    关于使用更新版本的 Marionette 的优势:错误修复、新功能、更稳定的代码、更一致的 API、更新更好的对象以支持开发以及对当前版本的支持。

    如果它可以满足您的所有需求,那么坚持使用旧版本就可以了。目前,几乎所有 .minor 版本的 Marionette 都在网络上运行着实时应用程序。这些应用程序可能不需要更新,所以他们坚持现有的。但老实说,你不会得到对旧版本的太多支持。

    在 v1.0 最终版本发布之前,几乎不存在向后兼容性和支持。一旦 v1.0 发布,我们将在短时间内提供错误修复,但会在新版本中推进新功能。

    高温高压

    于 2012-11-30T13:55:16.317 回答