木偶 - 帮助理解组件的工作原理

时间:2014-01-17 13:14:28

标签: backbone.js marionette

我正在开发一个相当大的SPA,我决定使用Backbone。我的应用程序运行良好,包括路由器,页面部分,模板,登录系统和CRUD区域。并且有两个不同的区域,其中一些用户可以访问两个或仅访问一个。在RequireJS的帮助下,一切都模块化了。但是我必须自己编写很多东西,并开始思考是否有更好的方法来做。

我骑了很多关于木偶的事情,我非常喜欢它如何处理一些问题和任务,比如僵尸视图和附加区域到布局......只提一些。但很难找出组件如何工作或它们应该做什么。 有一些方向会很好。

我制作了一张思维导图,所以对某些人来说,理解我的问题会更容易:

enter image description here

我理解的事情(如果我遗失了某些事情,请纠正我):

  • ItemView是元素的一小部分,如标题导航或标题搜索表单
  • 布局是ItemViews的集合:整个“标题”。
  • 区域附加到应用程序本身,需要布局实例到区域的参数;但它可以直接与之相关的ItemView。
  • AppRouter已附加到应用程序。

我不太清楚的事情:

  • 此结构中的位置是复合视图?
  • 我可以用控制器做什么?到底应该做什么?它与应用程序直接相关吗?我可以将AppRouter连接到它吗?

任何帮助都会很棒。谢谢你。

1 个答案:

答案 0 :(得分:1)

ItemView是元素的一小部分,如标题导航或标题搜索表单

我认为documentation中的说明更好,但基本上ItemView是您在Marionette中的基本视图类型。

  

ItemView是表示单个项目的视图。该项目可能是   一个Backbone.Model或者可能是一个Backbone.Collection。无论哪个   但是,它将被视为单个项目。

布局是ItemViews的集合:整个“标题”。

LayoutItemViewRegions集合的组合。您可以使用它将各种类型的视图ItemViewCollectionViewCompositeView,另一个Layout组织到特定的布局中。 (再次,请参阅documentation)。

此结构中的位置是复合视图吗?

CompositeView可与图表中的ItemView互换,另请参阅CollectionView。简单来说,ItemView通常是模型的直观表示,CollectionView表示ItemViews的集合,而CompositeView是两者的组合。

我可以用控制器做什么?到底应该做什么?它与应用程序直接相关吗?我可以将AppRouter连接到它吗?

再次提到documentation

  

这是一个非常通用的多用途对象,可以为很多人服务   不同的角色,在许多不同的场景中。

我承认,这对你没有多大帮助;)。但是,基本用法是作为AppRouter的委托来实现路由更改时发生的具体逻辑。