Mau*_*ice 15 structure requirejs backbone.js
在组织我的Backbone对象到AMD(对于中型到大型应用程序)时,我一直在努力在可重用性和复杂性之间取得适当的平衡
(A)每个Backbone对象(模型,视图等)都应该在自己的模块中吗?(B)相关的Backbone对象应该在同一个AMD模块中吗?(即:PersonModel,PersonCollection,PersonView对象在同一模块定义中)
选项(A)似乎允许最大的灵活性和可重用性,但也是最复杂的,因为(可能)大量的文件.虽然选项(B)可以使管理事物变得更容易,但灵活性较差且难以进行单元测试.
每个人如何构建这些东西(或者有)?
我对requirejs的好处是,它允许您将物理文件抽象为结构化命名空间.您可以采用方法(A)并在自己的文件中创建每个骨干类,然后创建一个"命名空间"模块,将所有相关的类粘合在一起.
// Suppose you have PersonView.js, PersonCollectionjs, PersonModel.js as modules
// create a Person module to function as namespace
define(["PersonModel", "PersonCollection", "PersonView"], function(model, collection, view) {
return {
Model: model,
Collection: collection,
View: view
};
});
Run Code Online (Sandbox Code Playgroud)
这样可以将模块组织在自己的文件中,并为每个类编写一个模块提供一些灵活性,而不需要为应用程序的其余部分公开该组织(我真的不喜欢require("PersonView", "PersonModel" ... )每次需要使用时都要编写在人的对象中,消费者更容易和更清洁地声明对"命名空间"而不是独立类的依赖.
| 归档时间: |
|
| 查看次数: |
1040 次 |
| 最近记录: |