制作一个没有集合的 React + Backbone 应用程序 restful

Making a React + Backbone application restful without Collections

我正在尝试将 REST 添加到 React + backbone 示例中。

tutorial for doing this requires a Backbone.Collection, but the example I found (TodoMVC) doesn't seem to use Collections at all, contrary to what I expected given this tutorial 关于在 React 中使用 Backbone。

以后会有问题吗?

其次,如何在没有明确引用 Collection 的情况下创建应用程序 restful。我必须用一个重写它​​吗?

编辑:

我最终改用 Collection,但在重组某些代码时遇到了问题。

我引用的原文 example 有点像这样:

var TodoStore = _.extend(_todos, {
    getAll: function() {
        return _todos.toJSON();
    }
    ...
 }

现在,我的 TodoStore 变成了 TodoStore = new TodoCollection();

那么我应该把这些功能放在哪里呢?
我试着把它们放在 TodoCollection 中(可能相当天真),但是新条目不再保存在商店中。

这些函数属于哪里?

编辑 2:

研究前面的例子让我很困惑。

看起来他们的 TodoStore(我想成为 Collection)是一个模型。

当他们创建一个项目时,他们会将其添加到该模型中,这对我来说意义不大。他们不应该创建一个模型实例并将其添加到 Collection,还是我误解了什么?

感叹 编辑3:

刚刚注意到他们的 Model 实际上是一个实例。

我以为是var _todos = Backbone.Model.extend();其实是:
... = new Backbone.Model.extend();

我想这会改变一些东西。

TodoMVC 是一个受约束的示例,它假装是说明性的,而不是详尽地显示库的所有功能。

Backbone 是一种自助图书馆,采用你 fancy-need 而不是更严格的框架 Angular 所以它 "shouldn't" 是一个问题,但这取决于服务器端的 REST api 位。

如果它们在我的 DSL 上看起来是聚合 objects 的自然表示,我个人会使用 Collections,一般来说我会 "always" 使用它。主要优点是利用您将从 Collections 自动获得的所有事件进行 CRUD 操作。

Collections are ordered sets of models. You can bind "change" events to be notified when any model in the collection has been modified, listen for "add" and "remove" events, fetch the collection from the server, and use a full suite of Underscore.js methods.

最后所有暴露的都是绝对独立的,不管你加不加React.js

关于您的编辑:

在看到您的编辑后,我认为该示例对于您的问题域不是一个很好的指南。像 this 这样的东西更 "real"

  1. 我试着把它们放在 TodoCollection 右边
  2. 到collection
  3. 是的,这不自然,他们试图让示例保持简单,如果有服务器端
  4. ,它应该是collection
  5. 是的,变化很大。看看 Douglas Crockford article 我认为 extend 没有参数也可以删除