ParseReact实时像Firebase和MeteorJS

时间:2015-09-10 21:14:39

标签: javascript parse-platform reactjs

我开始使用ParseReact(https://github.com/ParsePlatform/ParseReact),但我想知道是否有任何方式的实时数据?就像在MeteorJS或Firebase中一样。

要将Parse数据添加到组件,它只需要订阅标准Parse查询。这是通过为React实现新提出的observe()API来完成的。 ParseReact Mixin允许今天使用这个新生命周期方法的一个版本与Parse Queries。

如果你正在使用React和ES6类,我们还提供了一个React.Component的子类,它允许你使用observe()和Query特定的API。

var CommentBlock = React.createClass({
  mixins: [ParseReact.Mixin], // Enable query subscriptions

  observe: function() {
    // Subscribe to all Comment objects, ordered by creation date
    // The results will be available at this.data.comments
    return {
      comments: (new Parse.Query('Comment')).ascending('createdAt')
    };
  },

  render: function() {
    // Render the text of each comment as a list item
    return (
      <ul>
        {this.data.comments.map(function(c) {
          return <li>{c.text}</li>;
        })}
      </ul>
    );
  }
});

每当此组件安装时,它将发出查询,结果将附加到this.data.comments。每次重新发出查询,或者在本地修改与查询匹配的对象时,它都会自行更新以反映这些更改。

以Flux Actions的方式调度突变,允许更新在许多不同组件之间同步,而不需要视图相互通信。支持所有标准Parse数据突变,您可以在Data Mutation指南中阅读更多相关信息。

// Create a new Comment object with some initial data
ParseReact.Mutation.Create('Comment', {
  text: 'Parse <3 React'
}).dispatch();

我试过这个例子,但总是要重新加载视图。它与Firebase和MeteorJS不同

1 个答案:

答案 0 :(得分:3)

我还希望了解更多相关信息......不确定这是否真的是支持的功能。正如文档所述,您在observe函数中订阅的查询将使用新的props / state以及Mutation发生的任何时间进行更新。从这个意义上讲,它与Meteor非常相似,因为状态的更改更改(很像会话变量的更改)可以将查询重新加载到后端。

不同之处在于,与Meteor不同,Parse中的更改(例如,直接在db或其他前端实例中)不会传递给所有订阅的React前端。至少据我所知。这有点令人失望。很想听听更有经验的人,他们在过去的24小时里一直在搞乱ParseReact。