wil*_*age 6 javascript module structure requirejs backbone.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??
Run Code Online (Sandbox Code Playgroud)
我有两个问题:
是否应该从BackboneJS控制所有应用程序逻辑?如果没有那么这个单独的逻辑应该放在我的应用程序结构中?当然,骨干无法控制您的所有客户端活动.那些不涉及任何收藏的活动呢?
在使用BackboneJS时我是否应该使用RequireJS来管理模块?我找到了这个例子,但它似乎使Backbone的已经令人困惑的概念更加复杂化了.
我即将开始使用一个非常重量级的应用程序,并且在我的代码开始出现之前真的想要做到这一点!
关于Backbone的好处在于它只是一组有用的部分,你可以随心所欲地组合在一起.你可以随意组织它.
当然,骨干无法控制您的所有客户端活动.
为什么不?我有一个相当大的客户端应用程序,其中所有代码(除了jQuery插件等)是使用Backbone构造(视图,模型,集合,路由器)编写的.
在我们的例子中,我们使用的是Rails,因此我们不需要担心需要其他JS文件.我们将项目分解为许多js(咖啡)文件,"资产管道"将它们合并为一个js文件.(我们确实需要告诉资产管道一些排序规则,但是......集合之前的模型,视图之前的集合等)
当我们这样做时,我们有以下设置:
-assets
-javascripts
-backbone
-collections
-helpers
-models
-routers
-templates
-views
-bootstrapper.js
Run Code Online (Sandbox Code Playgroud)
当然,这就是我们这样做的方式.对于较大的项目,我总是知道在哪里可以找到我的组件,我们在不同的子视图中创建子文件夹.例如:
-views
-people
-people_list.js
-people_item.js
-orders
-order_list.js
-order_item.js
-order_form.js
Run Code Online (Sandbox Code Playgroud)
但是,在较小的项目中,您可以将所有内容放在一个JS文件中,这不会有问题.大多数玩具示例都是这样布局的.
中间布局可能只是将模型与您的视图分开,如下所示:
-models.js // models and collections
-routers.js
-views.js
Run Code Online (Sandbox Code Playgroud)
我想你应该从中得到的是:"然而你喜欢组织".对项目规模和团队对组织的理解做有意义的事情.
Backbone提供结构.然而,对于如何设计这种结构并不是固执己见.