backbone.js noob被相互冲突的教程弄糊涂了

backbone.js noob被相互冲突的教程弄糊涂了,backbone.js,Backbone.js,我是backbone.js新手,正在学习一些教程。我发现了一些看起来不错的方法,但它们的实现方式存在一些不一致之处,所以我正在寻找一些关于最佳实践的指导 以下是我学习的教程: 我的问题是: 第一个tut使用Backbone.Controller,但不使用Backbone.Collection。第二种情况正好相反。在MVC上,哪一个是“C”的最佳实践 第一个tut在模型中定义URL,而第二个tut在集合中定义URL。哪种做法更好 第二个tut使用主干路由器,而第一个不使用。哪一种是最佳实践

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

以下是我学习的教程:

我的问题是:

  • 第一个tut使用Backbone.Controller,但不使用Backbone.Collection。第二种情况正好相反。在MVC上,哪一个是“C”的最佳实践
  • 第一个tut在模型中定义URL,而第二个tut在集合中定义URL。哪种做法更好
  • 第二个tut使用主干路由器,而第一个不使用。哪一种是最佳实践
  • 或者,如果有人能建议一个更好的介绍教程,遵循最佳实践,我很乐意从那里学习。不幸的是,由于这两者之间的不一致,我担心我可能会在一开始就养成一些坏习惯


    提前谢谢。

    这是一个好问题。不过,主干网并没有对您应该如何组织代码采取立场

    因此,真正的答案是:视情况而定

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

    如果您想了解一些最佳实践的概述,我建议您参考主干样板项目:

    这个项目非常可靠,在开始时确实帮助了我

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

    1:主干网主要是一个MV*框架(模型视图)。控制器逻辑主要存在于主干视图中,这对于前端开发来说是可行的,因为逻辑通常与UI紧密相连(因为我们主要是对接口进行编码)。主干网并没有内置控制器,但如果您喜欢这种类型的组织,只需构建您自己的

    2:URL取决于您的需要。如果要获取完整集合,请在集合上进行设置;如果仅获取(或可能保存)一个模型,请在模型上进行设置。他们也生活在一起

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

    希望这有帮助

    去年,主干网控制器是主干网路由器。我猜你在读一本老教程

    这是一个不错的入门教程

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

    学习脊梁最好的方法是通过考试。每一行都有注释和解释

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

    如果你喜欢读书,可以看看艾迪·奥斯马尼的免费电子书。这本书很棒,但相当冗长。你可以把它作为参考

    参见Quora上的最终资源列表

    不要太担心MVC上的“V”和“C”以及主干的旋转。
    该框架在分离与服务器交互的代码和执行核心客户机逻辑的代码方面做得非常好。DOM元素的模板化和更新由您决定。从这个意义上讲,这是非常简约的。主干提供了使不同部分相互交互的功能。

    我将根据经验回答:

    Q:第二个则相反。在MVC上,哪一个是“C”的最佳实践

    A:当前主干网中没有
    控制器
    ,“C”发生在视图中(大多数情况下)或路由器中(见下文)

    Q:第一个tut在模型中定义URL,而第二个tut在集合中定义URL。哪种做法更好

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

    Q:第二个tut使用主干路由器,而第一个tut不使用主干路由器。哪一种是最佳实践


    A:经验法则-您需要在两种情况下使用路由器:1)当您想要有历史记录时,2)当您想要永久链接时。否则你就不需要路由器了。

    我不知道控制器被重命名为路由器了,所以在看过时的教程时,这应该是一个危险信号。谢谢你的澄清。