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

Backbone.js 在主干网中切换视图以在页面之间导航-正确的方法是什么?,backbone.js,Backbone.js,我已经决定将应用程序路由改为客户端而不是服务器端。这意味着我需要一种在用户浏览站点时切换页面内外视图的方法。我能找到的唯一一件事就是这篇文章: 我明白这是怎么回事,但我不认为这是一个很好的方法。我想保留我的观点,因为这就是重点,对吗?要为应用程序的可区分部分提供单独的视图?我认为拥有一个大的“ContentView”,然后只是将内容拉入其中并重新渲染有点粗糙,并且绕过了所有你可以做的很酷的模块化 那么最好的方法是什么呢?理想情况下,我想要一个类似于上述文章中所述的函数,但以主干视图作为其参数。我

我已经决定将应用程序路由改为客户端而不是服务器端。这意味着我需要一种在用户浏览站点时切换页面内外视图的方法。我能找到的唯一一件事就是这篇文章:

我明白这是怎么回事,但我不认为这是一个很好的方法。我想保留我的观点,因为这就是重点,对吗?要为应用程序的可区分部分提供单独的视图?我认为拥有一个大的“ContentView”,然后只是将内容拉入其中并重新渲染有点粗糙,并且绕过了所有你可以做的很酷的模块化


那么最好的方法是什么呢?理想情况下,我想要一个类似于上述文章中所述的函数,但以主干视图作为其参数。

我已经就此主题写了几篇文章:

还有一个更新的,从这篇文章中吸取了这个想法,并将其形式化:

在大多数情况下,重用视图实际上是一种反模式。为了让实例重新连接到DOM并正确处理已注册的DOM事件,在保留视图实例时通常会涉及大量额外的代码和额外的麻烦。此外,内存泄漏(我的第一篇文章谈到了这一点)和使用过多内存破坏应用程序性能的风险


如果您的视图使用的是“昂贵”的资源,则应将该资源缓存在视图之外并重新使用。您的视图创建、渲染、显示和销毁应该既便宜又快捷。

首先,阅读得很好,您的博客直接进入了我的RSS提要。我现在正在考虑改用木偶。您对像requireJS这样的require LIB及其在这方面的用途有何看法?我想,一旦客户端路由实现,有用性就会失效……requirejs完全由木偶网支持,我的许多客户端都将其与木偶网一起使用。我个人不在自己的项目中使用它,但这只是个人的偏好。它确实解决了一些实际问题,而且它现在是JS社区中的一个重要工具。真正的测试将是JS在浏览器中获得真正的模块系统后是否需要继续。不要忘记在View#render()方法中添加
this.delegateEvents()
,否则类似
events:{“click.button”:“doStuff”}
的内容在视图重新渲染后不会触发。