8

我是backbone.js 的新手,正在学习一些教程。我发现了一些看起来不错的方法,但是它们的实施方式存在一些不一致之处,因此我正在寻找有关最佳实践的一些指导。

以下是我正在学习的教程:

我的问题是:

  1. 第一个 tut 使用 Backbone.Controller,但没有使用 Backbone.Collection。第二个则相反。哪个是 MVC 上主干中的“C”的最佳实践?
  2. 第一个 tut 在 Model 中定义 url,而第二个在 Collection 中定义它。哪个是更好的做法?
  3. 第二个 tut 使用 Backbone.Router,而第一个没有。哪个是最佳实践?

或者,如果有人可以建议遵循最佳实践的更好的介绍教程,我很乐意从那里学习。不幸的是,由于这两者之间的不一致,我担心我可能会从一开始就学习一些坏习惯。

提前致谢。

4

3 回答 3

3

Backbone.Controller去年更名为Backbone.Router。我猜你正在阅读一个旧教程。

BackboneTutorials.com是一个不错的入门教程。

在你学习的过程中构建一个小应用程序,你就会知道 Backbone 为你做了什么。

学习 Backbone 的最好方法是阅读带注释的源代码。每一行都有注释和解释。

构建应用程序时使用开发版本而不是缩小版本。这有助于调试。

如果您喜欢读书,请查看 Addy Osmani 的Backbone Fundamentals,这是一本免费的电子书。这本书很棒,但很冗长。您可以将其用作参考。

有关资源的最终列表,请参阅Quora 上的这个问题;

不要太担心什么是“V”、什么是“C”以及主干在 MVC 上的旋转。该框架在分离与服务器交互的代码和执行核心客户端逻辑的代码方面做得非常出色。DOM 元素的模板化和更新留给您。从这个意义上说,它非常简约。Backbone 提供了使不同部分相互交互的事件。

于 2012-11-02T21:28:27.690 回答
1

这是一个很好的问题。但是,Backbone 并没有决定您应该如何组织您的代码。

所以,真正的答案是:视情况而定。

这取决于您的应用程序的需要以及您的编程习惯。

如果您想了解一些最佳实践,我建议您参考 Backbone Boilerplate 项目:https ://github.com/tbranyen/backbone-boilerplate

这个项目非常扎实,在开始时真的帮助了我。

然后,回答你的问题(这可能让人觉得很自以为是,确实如此):

1:Backbone 主要是一个 MV* 框架(Model-View-Whatever)。控制器逻辑主要存在于 Backbone 视图中,这对于前端开发来说是可以的,因为逻辑通常确实与 UI 相关联(因为我们主要是编码接口)。Backbone 没有内置控制器,但如果您更喜欢这种类型的组织,只需构建您自己的。

2:网址取决于您的需要。如果您要获取完整的集合,请将其设置在集合上,如果您只获取(或可能保存)一个模型,请将其设置在模型上。这些也生活得很好。

3:关于路由器,如果您要在应用程序上构建多个页面/部分,请使用它们。但请注意不要routesaction在 RESTful API 中那样使用,这在大多数情况下最终会带来问题(用户按下后退按钮等)。因此,如果您想管理页面,请使用路由。

希望这有帮助!

于 2012-11-02T21:26:30.017 回答
1

我会根据经验回答:

问:第二个正好相反。哪个是 MVC 上主干中的“C”的最佳实践?

答:Controller当前的 Backbone http://backbonejs.org/中没有- “C”出现在 View(大多数情况)或 Router(见下文)中。

问:第一个 tut 在 Model 中定义 url,而第二个在 Collection 中定义它。哪个是更好的做法?

A:有些情况下您不需要收藏。如果你不这样做,你的模型绝对需要一个 URL。当您确实有一个集合时,您为 Collection 指定的 URL 将应用于其模型。

问:第二个使用 Backbone.Router,而第一个没有。哪个是最佳实践?

答:经验法则 - 您想在 2 种情况下使用路由器:1)当您想要拥有历史记录时,以及 2)当您想要拥有永久链接时。否则你真的不需要路由器。

于 2012-11-02T21:28:38.603 回答