什么Javascript框架最适合这种情况?

时间:2011-11-20 07:36:58

标签: javascript backbone.js knockout.js spine.js

我想在js中建立一个联系人列表,但是有很多js技术,比如backbone.js,spine.js,knockout.js等,我真的不知道哪一个最适合我。

我的联系人有几种类型:FacebookUser,User和UserList。用户列表的捕获是它是用户或UserLists的集合。此外,它本身可能有也可能没有自己的联系信息(如公司或团队)。

我想在树视图中显示此列表,您可以在其中深入查看UserList(并使组成员延迟加载)。

最后,整个联系人列表是一个实例。我的意思是你一次在同一个窗口中打开0-n个联系人列表。

我应该在这种情况下使用什么框架?

2 个答案:

答案 0 :(得分:4)

您提到的所有三个库(backbone.js,spine.js,knockout.js)都针对单页浏览器应用程序。

但是您对问题的描述听起来更像是格式化问题,而不是数据管理。即,您希望页面显示数据。您不需要将更改从页面保存回服务器;您的用户将刷新到该页面以显示新的或不同的信息。

如果我对你的目标的理解是正确的,我会选择jQuery或YUI。你提到的libs会有点过分。

已添加 YUI有一个很好的treeview widget,支持延迟加载分支。我用它。

如果您决定使用模型图层,则YUI 3包含ModelModelList。它们基于Backbone api。

回复:MVC评论在评论中,OP提到了相同数据的多个视图,更改传播和编辑检测(如果用户更改了数字)和更新服务器"

对于那些情况,是的,现在很多很酷的孩子都在浏览器上使用完整的MVC框架。如果你想朝这个方向前进,那么你可以使用你提到的三个中的任何一个。注意:

  • Backbone,可能还有其他两个, not 提供完整的MVC。相反,Backbone提供Model&控制器部分,尤其是模型。通常使用Mustache作为视图。此外,通常使用下划线或jQuery来提供基本功能。如果你是谷歌的主干示例,其中许多包括jQuery。

  • 结帐YUI new y.App。它包含一个记录良好的lib中的所有MVC部分。 y.App正处于热门开发阶段,基于Backbone api。一个video-cast

  • 浏览器上的MVC框架是全新的。不要因为快速更改库代码,不一致的文档,几个示例等而感到惊讶。您还应该考虑记录和发布您的调查。要获得额外的功劳,请在移动浏览器上使用它。

  • 49传言有传言称正在开发一个浏览器端的MVC框架,但我们还没有看到任何东西。

  • 我认为骨干是模型库中最高级的。但事实证明,许多新用户会感到困惑,因此其他一些基于其概念的库也是如此。

  • 根据我对YUI的经验,他们的Y.app将拥有最一致,最完整的api集和最好的文档。

答案 1 :(得分:0)

如果我们采取你的具体案例,我会强力选择Knockout.js

Knockout是为UI构建的,即您的数据模型可以绑定到HTML元素,然后模型中的任何更改都会相应地操作UI。

在您的情况下,联系人列表的添加/删除将由Knockout自动处理。您所需要的只是定义树视图中的更改如何处理(通过代码或HTML模板),Knockout将负责处理。

如果说,定义联系人列表的树视图仍然是完全不同的任务,您可能需要使用一些CSS / JS库。