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

Is Backbone.js only for single page applications?

本文关键字:应用 单页 适用于 js Backbone      更新时间:2023-09-26

我正在为我的UI寻找一个简单的架构,它将有一些基本的javascript功能,如:选择所有的复选框,图像裁剪,一些弹出窗口和一些其他插件。

我找到了这篇文章:用模块组织你的Backbone.js应用

我的应用程序不是SPA(单页应用程序)。我想知道如果Backbone.js与jQuery将帮助我,即使我的应用程序不是一个SPA。

Backbone的强大之处在于它能够管理许多模型(甚至是复杂的模型),并使呈现的页面与当前值保持同步。它提供了getter/setter函数的接口,这样,模型值的更改(有许多不同的"更改"方式)将调用相应视图上的render,页面将正确地反映底层模型。此外,它还提供了对模型进行保存、分页和路由操作的接口。

我已经在SPA(它的亮点所在)和更传统的多页面应用程序中广泛使用了Backbone。它没有对UI和DOM操作的特殊支持,但是结合jQuery/Prototype/Zepto,它管理它们的渲染/操作。

基本上,主干最适合解开复杂的呈现逻辑和模型更新链。如果您觉得您的应用程序有很多视图元素需要与客户端将在页面上更新的模型保持同步,那么Backbone是一个很好的解决方案。如果您只需要选择和操作DOM元素,那就有点多余了。

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

然而,我认为Backbone.js的优势在于SPA领域。

如果你还没有使用jQuery作为你的应用程序的一部分,你可能会找到一些jQuery片段来回答你的一些需求。然而,jQuery是关于你提到的部分(简单的DOM操作,如果你使用jQuery UI弹出窗口等),而不是关于结构或组织。

我相信骨干的主要思想,是使用MVC概念组织复杂应用程序中的JS代码。这样你的应用就更容易维护和添加新功能,也更容易使用像jasmine这样的框架测试。

主干也使基于SPA方法的工作成为可能(并且非常好),使用ajax请求服务器。它完全基于Restful概念,要获得一个使用骨干的代码,理解什么是Restful是很重要的。

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

模型,您可以在其中管理应用程序的所有数据逻辑。集合,类似于模型列表。视图,这是您将根据模型更改做出反应的地方。

还有其他的事情,但基本上是这样的。

但就像我之前说的,你可以不做SPA就使用它。

要记住的最重要的事情是,在使用骨干时必须遵循MVC的概念。如果你不这样做,使用主干就没有意义。