0

假设我有一个名为 Submissions 的控制器,在其中,我有一堆不同的模块(例如,提交页面上的容器允许用户:、、、favorite提交。votelike

在 Backbone 世界中,我是否应该为每个模块创建一个视图?例如

var submissionsFavoriteView = new SubmissionsFavoriteView({});

或者我应该创建一个提交视图然后执行此操作:

var submissionsView = new SubmissionsView({});

然后在我的submissionsView 中有处理收藏、投票、喜欢等的方法?

例如

favorite : function() {
},

vote : function() {
},

like : function() {
}
4

1 回答 1

1

这实际上取决于您的每个模块将具有多少功能。

如果您的“喜欢”模块只是一个按钮,那么为它创建一个特殊的视图可能会使代码过于复杂。

需要考虑的事项:

  • 您能否在接口的其他部分重用模块或其中的某些功能(=视图方法),如果可以的话,将其放入自己的视图中

  • 您的视图代码是否变得冗长且难以理解,如果是这样,请尝试将其分解为较小的视图

  • 根据个人经验,我发现当有疑问时,最好有更细化的视图而不是更大的视图。当你的观点又长又复杂时,就很难把事情分开。

如果您认为最终会获得很多视图,我强烈建议您使用Marionette.js 。如果您的应用程序开始增长,它确实可以节省大量用于视图依赖管理和渲染的代码。

于 2013-06-17T01:02:59.733 回答