【问题标题】:Comparing backbone.js and Dojo比较backbone.js 和Dojo
【发布时间】:2011-12-02 03:28:14
【问题描述】:

我正在考虑使用我的 JS 工具箱。由于某些产品原因,道场将在那里。现在我想知道添加backbone.js 是否有意义。 Dojo(它还做其他一些事情——我知道这一点)和backbone.js 重叠还是互补?重叠部分的概念差异是什么?有没有同时使用两者的例子? (我知道这是一个相当广泛的问题,可能会显示我的第二级无知)

【问题讨论】:

    标签: dojo backbone.js


    【解决方案1】:

    Dojo 涵盖的范围比 Backbone.js 广泛得多。 如果您已经精通 Dojo,那么您想要在工具箱中考虑 Backbone.js 的唯一原因是因为它是轻量级的。您可能喜欢也可能不喜欢 API 的差异——这纯粹是一个选择问题。 如果您已经在一个项目中使用 Dojo,那么在同一个项目中使用 Backbone.js 确实没有意义,因为 Dojo 拥有构建 MVC 架构所需的一切,尽管在表面上它可能并不那么明显。 Dojo 数据存储功能强大,Dijit 小部件旨在与 Dojo 数据存储一起使用。使用 Backbone 模型为 Dijit 小部件提供数据后端将非常麻烦。这真的是不必要的,因为在 Dojo 中,数据层和表示层非常巧妙地解耦并且开箱即用地工作得很好。 但是,如果您的应用程序只需要一个轻量级 MVC 结构,那么 Backbone.js 可能会为您提供比使用 Dojo 更轻量级的替代方案。但同样取决于您的应用程序和您的要求,一个可能比其他更合适...

    【讨论】:

      【解决方案2】:

      我以前有过 Backbonejs 经验,但我即将从事一个依赖于 Dojo 的项目,而且我刚刚开始挑选它。尽管如此,我还是会在这里评论一下我到目前为止所观察到的,尽管它很少。

      我们希望拥有一种现代 Web 应用 架构风格(想想 twitter、quora、gmail),这些架构可以很容易地由 Backbonejs 之类的东西提供。它为您提供的概念虽然很基础,但在您所需要的方面非常重要。

      说实话,我不认为 Dojo 真的提供了所有 Backbonejs 提供给你的开箱即用的东西,举个例子:路由器和视图,以及它们提供的有用方法,可以轻松快速地声明事件,触发 url 方法变化等。

      在 Dojo 方面,我承认商店在那里,并且您可以将它们连接到小部件,但这与拥有 Backbonejs 提供的抽象模型和集合不同。在 Dojo 网站的 MVC 教程中,他们将商店等同于模型;这将是 Backbonejs 中的一个集合,而且你仍然有一个模型(这只是商店中的一个项目,你可以在它上面监听和触发事件)。

      Backbonejs 的抽象似乎更加细粒度。

      所以我认为两者可以互补使用。刚开始使用这种方法,过几天看看效果如何。

      (谣言:我听说 Dojo 正在 MVC 领域进行一些开发,以与 Backbonejs 提供的相提并论......)

      【讨论】:

      • 请通过更新此答案分享您的学习经验
      • Dojo 1.7 昨天刚刚发布,现在它们包括一个 router! 我一直在玩小部件创建,它们的架构非常好,具有良好的组件间通信设施(事件、酒吧/sub),关注点分离也很好。
      • 而使用 Dojo 1.7,您可以进行事件委托,backbonejs 视图样式:dojo/on
      • 我现在从另一个方向来回答这个问题,非常了解 Dojo 并研究了 Backbone。鉴于这个答案,似乎值得指出的是,Dojo 1.8 正在添加大量的东西,包括在 dojox/mvc 领域的一些巨大的改造。 livedocs.dojotoolkit.org/releasenotes/1.8
      猜你喜欢
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      • 2014-03-28
      • 1970-01-01
      • 2014-06-12
      • 2011-08-21
      • 1970-01-01
      • 2011-04-20
      相关资源
      最近更新 更多