Javascript BackboneJS站点结构

Javascript BackboneJS站点结构,javascript,module,backbone.js,structure,requirejs,Javascript,Module,Backbone.js,Structure,Requirejs,好吧,我正试着让我的头脑明白这整件事。我理解您必须将站点划分为模块,并将每个模块分解为模型、集合和视图,如中所述 我的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

好吧,我正试着让我的头脑明白这整件事。我理解您必须将站点划分为模块,并将每个模块分解为模型、集合和视图,如中所述

我的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??
-models.js // models and collections
-routers.js
-views.js

我有两个问题:

  • 是否应控制所有应用程序逻辑?如果不是,那么这个独立的逻辑应该驻留在我的应用程序结构中的什么地方?当然主干网不能控制所有的客户端活动。那不涉及任何收藏的活动呢

  • 在使用BackboneJS时,我是否应该使用来管理模块?我已经发现,但它似乎使已经令人困惑的主干概念更加复杂


  • 我即将开始一个非常重javascript的应用程序,我真的想在我的代码开始快速增长之前把它做好

    主干网的好处在于,它只是一个有用的片段集合,您可以随意组合。你可以想怎么组织就怎么组织

    当然主干网不能控制所有的客户端活动

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

    在我们的例子中,我们使用的是Rails,所以我们不需要担心需要其他JS文件。我们将项目分解为多个js(coffee)文件,“资产管道”为我们将其合并为一个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文件中,这不会是一个问题。大多数玩具的例子都是这样布置的

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

    -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??
    
    -models.js // models and collections
    -routers.js
    -views.js
    
    我想你应该从中得到的是:“想怎么组织就怎么组织”。做对项目规模和团队对组织的理解有意义的事情

    主干提供结构。然而,对于这种结构是如何设计的,这并不固执己见。

    如果它有助于我有一个项目启动者


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

    您不必按照示例中描述的方式组织它。这取决于你的应用程序有多复杂(例如,你有很多不同的用例,还是只有几个?),这个应用程序可以扩展到客户端变得非常复杂。但我不知道到目前为止我所看到的BackboneJS提议的结构将如何实现某些功能。基本上:与主干无关的逻辑可以驻留在哪里?@pagewil逻辑可以驻留在哪里?这取决于特定的逻辑。我们有一个“helpers”文件夹(请参阅我的答案),我们在其中放置核心计算助手,这些助手被主干视图/模型调用。我一直在为我的项目查看此结构:。基于我过去构建项目的方式,这对我来说似乎是有意义的。你对此有何看法?(还有,如何将templates.js文件传递到视图?@pagewil我认为模块方法也有意义。对于单独的类,我更喜欢使用单独的文件,但我不必担心在Rails中包含文件。就模板而言,我使用Rails