Backbone.js只适用于单页面应用程序吗?

时间:2011-10-24 13:57:41

标签: javascript web-applications architecture user-interface backbone.js

我正在为我的用户界面搜索一个简单的架构,它将具有一些基本的javascript功能:选择所有复选框,图像裁剪,一些弹出窗口和其他一些插件。

我发现了这篇文章:Organizing Your Backbone.js Application With Modules

我的申请不是SPA(单页申请)。我想知道,即使我的应用程序不是SPA,Backbone.js还是jQuery会帮助我。

3 个答案:

答案 0 :(得分:25)

Backbone的优势在于它能够管理许多模型(甚至是复杂模型)并使渲染页面与其当前值保持同步。它提供了getter / setter函数的接口,以便更改模型值(有许多不同风格的“change”)将在相应的视图上调用render,页面将正确反映底层模型。此外,它还提供了在模型上保存,分页和路由操作的接口。

我已经广泛使用Backbone用于SPA(它闪耀的地方)以及更传统的多页面应用程序。它没有对UI和DOM操作的特殊支持,但结合jQuery / Prototype / Zepto它​​管理他们的渲染/操作。

基本上,骨干最适合解开复杂的渲染逻辑和模型更新链。如果您觉得您的应用程序有很多视图元素需要与客户端将在页面上更新的模型保持同步,那么Backbone是一个很棒的解决方案。如果您只需要选择和操作DOM元素,那就太过分了。仅jQuery就可以解决这个问题。

答案 1 :(得分:3)

Backbone真的不是你提到的事情,但我不会说它严格适用于单年龄应用程序(SPA)。我要说的是,对于任何你都有相当复杂的页面的情况,你可以将它们分成多个部分(例如,几个视图都从一个模型中提取数据)。

但是,我会说Backbone.js的优势在SPA领域。

如果您还没有将jQuery用作应用程序的一部分,那么您可能会发现一些jQuery文件可以满足您的一些需求。但是,jQuery是关于你提到的部分(简单的DOM操作,弹出窗口,如果你使用jQuery UI等)而不是结构或组织。

答案 2 :(得分:0)

我相信骨干的主要思想是使用MVC概念在复杂的应用程序中组织JS代码。 通过这种方式,您的应用程序变得更容易保持并添加新功能,它可以轻松使用像茉莉花这样的框架测试。

Backbone还可以使用对服务器的ajax请求,基于SPA方法实现(并且非常好)工作。它完全基于Restful概念,使用骨干获取代码,对于理解什么是Restful非常重要。

基本上Backbone有一个路由器(可以像控制器一样工作但不是控制器)。

您可以在其中管理应用程序的所有数据逻辑的模型。 集合就像一个模型列表。 查看相应模型更改的位置。

还有其他的东西,但基本上就是这个。

但正如我之前所说,你可以在没有SPA的情况下使用它。

最重要的是要在使用骨干网时必须遵循MVC的概念。如果你不这样做,那么使用骨干是没有意义的。