2012-10-25 27 views
3

我正在构建一个相当复杂的Backbone.js应用程序。从Rails背景来看,我试图找出何时适合触发路由(以及它们的真正选项的功能),以及何时更改应用程序状态而不影响url。Backbone.js架构:路由或应用程序状态?

似乎很大程度上依赖路由器是一个好方向,因为我可以轻松地将应用程序启动到任何状态。有没有关于此的最佳实践?当我开始依靠导航方法时,我注意到我的视图正在重复。

回答

1

如上由Jsonwyatt所述。他的陈述“真的取决于情况”是恰当的。通常情况下,我喜欢通过视图来改变状态变化或状态操纵。然而,在例如我实际浏览任何导航网址的情况下,我希望像/home/foo这样的东西通过骨干路由器呈现。

但是,当你实际上只是说明模型状态改变,如更新模型。您可以只执行model.save()而不是通过类似/home/student/1的网址驱动,这会不必要地渲染另一个视图。但是这可能会导致您呈现另一个视图,而这个视图只能在您当前的视图内完成。

仅供参考Darik bailey在应用程序状态和路由器导航方面进行了非常精彩的演讲,并对此进行了大量的浏览器历史推送式讲座。参考你可以通过这个链接。

dont execute a backbone js route handler from your code

+0

Derick的另一篇精彩文章!这是我一直在努力的确切问题和进展。我需要一种通过事件和路由来相同地更新应用程序状态的方法,这是个诀窍! –

2

这真的取决于情况。

您通常希望在实际使用状态时使用路线您希望能够书签/共享的内容。另一方面,如果您只是更新视图中的某些内容,而不是真的需要检索状态 - 只需更改它即可。但是,您可以为路线提供一个选项,但不需要。例如,如果您的应用程序涉及地图 - 您可能不希望每次用户平移/缩放地图时更新位置/路线,但为“共享”或“书签”类型提供按钮可能是个好主意功能。

+0

谢谢,贾森!我想我的问题有点含糊。这篇文章(http://stackoverflow.com/questions/13078627/backbone-js-architecture-routes-or-application-state)正是我所期待的,以及我所经历的。 –