在主干中切换视图以在页面之间导航 - 什么是正确的方式?

时间:2012-02-12 17:09:38

标签: backbone.js

我决定将应用程序路由更改为客户端而不是服务器端。这意味着当用户浏览网站时,我需要一种方法来切换页面内外的视图。我可以找到的唯一尝试记录这一点的是本文:How to switch views using Backbone.js

我知道这是如何运作的,但我认为这不是一个好方法。我想保留我的观点 - 因为这一点是正确的吗?为您的应用程序的可区分部分提供单独的视图?我认为有一个大的" ContentView"然后只是把东西拉进去,重新渲染有点粗糙,绕过了你可以做的所有酷模块化。

那么最好的方法是什么?理想情况下,我想要一个类似于前面提到的文章中记载的功能,但是以骨干视图为参数。

1 个答案:

答案 0 :(得分:37)

我写了几篇关于这个主题的文章:

http://lostechies.com/derickbailey/2011/09/15/zombies-run-managing-page-transitions-in-backbone-apps/

是一个较新的人,从这篇文章中提出了这个想法并将其更正式化:

http://lostechies.com/derickbailey/2011/12/12/composite-js-apps-regions-and-region-managers/

在大多数情况下,重复使用视图实际上是一种反模式。通常会有很多额外的代码和额外的错误涉及到持有查看实例,让他们重新连接到DOM并正确处理已注册的DOM事件。此外,您还存在内存泄漏的风险(我的第一篇文章讨论过这种风险)并通过占用太多内存来破坏应用程序性能。

如果您的视图使用“昂贵”资源,则应将该资源缓存在视图之外并重新使用它。您的观点应该便宜且快速地创建,渲染,显示和销毁。