16

我目前正在构建一个巨大的主干应用程序(facebook 克隆)。

在过去的几天里,感谢 Rob Conery 的优秀教程(如果您从 MVC 3 和 BB http://tekpub.com/productions/mvc3开始,则必不可少的查看)对 BB 中的一切工作方式感到非常满意

现在我已经到了需要在我的应用程序中切换页面的阶段,我开始把它连接起来,但感觉就像我自己做了很多这样的事情。这很好,我知道我将能够做我想做的事。

我已经解决了内存泄漏问题,确保在切换页面时取消绑定并删除我的模型/集合/视图,在主干中切换视图以在页面之间导航 - 什么是正确的方法?

但是除了这些东西之外,当我在页面之间切换时,我还想做一大堆任务。本质上是删除和添加页面的一部分。这稍微复杂一些,因为除了删除所有内容之外,我只想根据我想要进行的转换来删除/破坏需要更改的页面位。

如前所述,我现在正在自己工作,但我想知道是否有一种模式来处理这种拆解/拆解过程并保持清洁(而不是最终导致路由器臃肿(控制器膨胀! !!)

4

2 回答 2

9

木偶绝对是要走的路。具体来说,Marionette.Layout非常适合在不重新渲染整个页面的情况下交换特定区域。查看 Derick 的一些示例应用程序以熟悉该框架。

我建议您在使用普通的旧事件使您的应用程序正常工作之前远离路由器。然后添加路由器支持之后。基本上路由器应该被连接起来以反映你的应用程序的状态,但你不应该依赖它作为你的控制器。

顺便说一句,我在一个大型多模块 Backbone 项目中使用 RequrieJS,这是天赐之物。这在 BB 社区中是有争议的,但是如果你有很多相互依赖的组件并且你想让另一个框架处理所有的依赖关系,那么它是值得研究的。

于 2012-04-21T21:43:59.173 回答
0

我遇到了同样的问题并想分享我是如何解决它的,所以我使用我的页面转换约定从 Backbone.js 文档重新设计了 ToDo 应用程序示例:

http://ahamlett.com/Backbone.localStorage/

我还没有测试它的内存泄漏,但如果有一些只是在应用程序路由器的 SetView 方法中的 .remove() 之前调用 .unbind() 。

于 2013-06-07T18:04:08.770 回答