Backbone Marionette视图结构

时间:2012-10-24 22:46:22

标签: javascript oop backbone.js marionette

我有一个基于Backbone的应用程序。由于它变得越来越复杂,我正在评估向Marionette的迁移,但我不确定如何构建我的观点。

现有的应用程序视图以这种方式构建:

BaseView = Backbone.View.extend({ ... }) 

BaseView是所有视图的根。它基本上有一个渲染功能,基本功能包括:模板渲染,页面定位,主动菜单选择等。

ListView = BaseView.extend({ ... }) 

此处 render 方法包含所有列表的公共代码,例如加载和使用DataTables插件,编辑项目的常见事件,additem,deleteitem等等。

FormView = BaseView.extend({ ... }) 

它使用Backbone.ModelBinder插件管理通用表单并处理表单验证。

我的所有应用程序视图都从上面的一个扩展,以提高代码的可重用性。例如,我有一个从FormView扩展的AccountFormView,我只有特定的逻辑(几行代码)来处理帐户信息。所有常见的逻辑都是从父母的观点中继​​承下来的。

如何使用木偶视图获得类似内容?

谢谢, 的Fabrizio

1 个答案:

答案 0 :(得分:4)

建立Marionette的观点以处理最常见的情况,并删除所有样板代码以解决这些常见问题:

  • 查看:可用于构建其他视图的基本视图
  • ItemView:使用模板呈现单个模型
  • CollectionView:使用指定的itemView
  • 渲染集合中的每个模型
  • CompositeView:将模板渲染为集合视图的包装器。支持的嵌套/层次结构

在您的情况下,听起来您将使用这些视图类型的组合,具体取决于您所处的特定方案。但是,您可以选择不使用单个视图类型来扩展。对当前场景最有意义并从中扩展的那个。

如果您正在寻找一种方法将自己的自定义功能添加到所有视图中,这也非常简单 - 只需将该功能添加到基本Marionette.View或Backbone.View中,它就可用于所有Marionette视图。< / p>

请务必查看文档和代码(它分为许多小文件,因此易于阅读和理解),以了解Marionete为您提供的方法,以及它提供的扩展点。

希望有所帮助。

相关问题