我正在开发一个相当大的SPA,我决定使用Backbone。我的应用程序运行良好,包括路由器,页面部分,模板,登录系统和CRUD区域。并且有两个不同的区域,其中一些用户可以访问两个或仅访问一个。在RequireJS的帮助下,一切都模块化了。但是我必须自己编写很多东西,并开始思考是否有更好的方法来做。
我骑了很多关于木偶的事情,我非常喜欢它如何处理一些问题和任务,比如僵尸视图和附加区域到布局......只提一些。但很难找出组件如何工作或它们应该做什么。 有一些方向会很好。
我制作了一张思维导图,所以对某些人来说,理解我的问题会更容易:
我理解的事情(如果我遗失了某些事情,请纠正我):
我不太清楚的事情:
任何帮助都会很棒。谢谢你。
答案 0 :(得分:1)
ItemView是元素的一小部分,如标题导航或标题搜索表单
我认为documentation中的说明更好,但基本上ItemView
是您在Marionette中的基本视图类型。
ItemView是表示单个项目的视图。该项目可能是 一个Backbone.Model或者可能是一个Backbone.Collection。无论哪个 但是,它将被视为单个项目。
布局是ItemViews的集合:整个“标题”。
Layout
是ItemView
和Regions
集合的组合。您可以使用它将各种类型的视图ItemView
,CollectionView
,CompositeView
,另一个Layout
组织到特定的布局中。 (再次,请参阅documentation)。
此结构中的位置是复合视图吗?
CompositeView
可与图表中的ItemView
互换,另请参阅CollectionView
。简单来说,ItemView
通常是模型的直观表示,CollectionView
表示ItemViews
的集合,而CompositeView
是两者的组合。
我可以用控制器做什么?到底应该做什么?它与应用程序直接相关吗?我可以将AppRouter连接到它吗?
再次提到documentation:
这是一个非常通用的多用途对象,可以为很多人服务 不同的角色,在许多不同的场景中。
我承认,这对你没有多大帮助;)。但是,基本用法是作为AppRouter
的委托来实现路由更改时发生的具体逻辑。