BackboneJS站点结构

时间:2011-10-14 09:37:45

标签: javascript module backbone.js structure requirejs

好的,我试图全面了解backboneJS这件事。我知道您必须将您的网站分成模块,并将每个模块分解为模型,集合和视图,如this example中所述。

我的JS文件结构目前如下所示:

-js
  -application.js

  -lib
    -jquery.min.js
    -backbone.min.js
    -underscore.min.js

  -modules
    -newsfeed.js //activity feed
    -file.js // page to upload files to
    -members.js // page that show other members of group
    //-general-site-logic.js??

我有两个问题:

  1. 应该从BackboneJS控制所有应用程序逻辑吗?如果没有那么这个单独的逻辑应该放在我的应用程序结构中?当然,骨干无法控制您的所有客户端活动。那些不涉及任何收藏的活动呢?

  2. 在使用BackboneJS时,我是否应该使用RequireJS来管理模块?我发现this example但它似乎使Backbone的已经令人困惑的概念更加复杂化。

  3. 我即将开始使用非常繁琐的javascript应用程序,并且在我的代码开始出现之前真的想要做到这一点!

2 个答案:

答案 0 :(得分:8)

关于Backbone的好处在于它只是一组有用的部分,你可以随心所欲地组合在一起。你可以随意组织它。

  

当然,骨干网无法控制您的所有客户端活动。

为什么不呢?我有一个相当大的客户端应用程序,其中所有代码(除了jQuery插件等)都是使用Backbone构造(视图,模型,集合,路由器)编写的。

在我们的例子中,我们使用Rails,因此我们不需要担心需要其他JS文件。我们将项目分解为许多js(咖啡)文件,“资产管道”将它们合并为一个js文件。 (我们确实需要告诉资产管道一些排序规则,但是......集合之前的模型,视图之前的集合等)

当我们这样做时,我们有以下设置:

-assets
  -javascripts
    -backbone
      -collections
      -helpers
      -models
      -routers
      -templates
      -views
      -bootstrapper.js

当然,这就是我们这样做的方式。对于较大的项目,我总是知道在哪里可以找到我的组件,我们在不同的子视图中创建子文件夹。例如:

-views
  -people
    -people_list.js
    -people_item.js
  -orders
    -order_list.js
    -order_item.js
    -order_form.js

但是,在较小的项目中,您可以将所有内容放在一个JS文件中,这不会有问题。大多数玩具的例子都是这样布局的。

中间布局可能只是将您的模型与您的视图分开,如下所示:

-models.js // models and collections
-routers.js
-views.js

我想你应该从中获得的是:“然而你喜欢组织”。对项目规模和团队对组织的理解做有意义的事情。

Backbone提供结构。然而,对于如何设计这种结构并不是自以为是。

答案 1 :(得分:0)

如果有帮助我有bootstrap,项目启动器会整合backbone.js, coffeescript, sinatra, jasmine and skeleton

它将帮助您开始项目结构,并节省您整合技术堆栈的时间。还使用骨架css进行响应式设计。