我有一个基于Backbone的应用程序。由于它变得越来越复杂,我正在评估向Marionette的迁移,但我不确定如何构建我的观点。
现有的应用程序视图以这种方式构建:
BaseView = Backbone.View.extend({ ... })
BaseView是所有视图的根。它基本上有一个渲染功能,基本功能包括:模板渲染,页面定位,主动菜单选择等。
ListView = BaseView.extend({ ... })
此处 render 方法包含所有列表的公共代码,例如加载和使用DataTables插件,编辑项目的常见事件,additem,deleteitem等等。
FormView = BaseView.extend({ ... })
它使用Backbone.ModelBinder插件管理通用表单并处理表单验证。
我的所有应用程序视图都从上面的一个扩展,以提高代码的可重用性。例如,我有一个从FormView扩展的AccountFormView,我只有特定的逻辑(几行代码)来处理帐户信息。所有常见的逻辑都是从父母的观点中继承下来的。
如何使用木偶视图获得类似内容?
谢谢, 的Fabrizio
答案 0 :(得分:4)
建立Marionette的观点以处理最常见的情况,并删除所有样板代码以解决这些常见问题:
itemView
在您的情况下,听起来您将使用这些视图类型的组合,具体取决于您所处的特定方案。但是,您可以选择不使用单个视图类型来扩展。对当前场景最有意义并从中扩展的那个。
如果您正在寻找一种方法将自己的自定义功能添加到所有视图中,这也非常简单 - 只需将该功能添加到基本Marionette.View或Backbone.View中,它就可用于所有Marionette视图。< / p>
请务必查看文档和代码(它分为许多小文件,因此易于阅读和理解),以了解Marionete为您提供的方法,以及它提供的扩展点。
希望有所帮助。