我正在构建一个相当复杂的 Backbone.js 应用程序。来自 Rails 背景,我试图弄清楚何时适合触发路由(以及使用 true 选项的函数),以及何时只更改应用程序状态而不影响 url。
似乎严重依赖路由器将是一个很好的方向,因为我可以轻松地将应用程序启动到我想要的任何状态。有没有这方面的最佳实践?当我开始依赖导航方法时,我注意到我的视图被重复了。
我正在构建一个相当复杂的 Backbone.js 应用程序。来自 Rails 背景,我试图弄清楚何时适合触发路由(以及使用 true 选项的函数),以及何时只更改应用程序状态而不影响 url。
似乎严重依赖路由器将是一个很好的方向,因为我可以轻松地将应用程序启动到我想要的任何状态。有没有这方面的最佳实践?当我开始依赖导航方法时,我注意到我的视图被重复了。
这真的取决于情况。
当状态实际上是您希望能够添加书签/共享 的东西时,您通常希望使用路由。
另一方面,如果您只是在更新视图中的某些内容,而实际上并不是您需要为其检索状态的内容 - 只需更改它即可。但是,您可以提供通往该州的路线的选项,但不是必需的。例如,如果您的应用程序涉及地图 - 您可能不想在每次用户平移/缩放地图时更新位置/路线,但提供“共享”或“书签”类型的按钮可能是个好主意功能。
正如上面提到的 Jsonwyatt 。他的说法“这真的取决于情况”是正确的。像状态改变或状态操作之类的东西通常是我更喜欢通过视图。但是,例如,在我实际浏览任何导航 url 的情况下,我希望/home/foo
通过骨干路由器呈现类似的东西。
但是,当您实际上只是在说明模型状态更改时,例如更新模型。你可以做model.save()
而不是通过一个 url 来驱动类似的事情/home/student/1
,这会不必要地呈现另一个视图。但这可能会导致您渲染另一个视图,而这只能从您当前的视图中完成。
作为参考,Darik bailey 就应用程序状态和路由器导航以及维护浏览器历史 pushstate 进行了很好的讨论。作为参考,您可以通过此链接。