我开始使用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不同
答案 0 :(得分:3)
我还希望了解更多相关信息......不确定这是否真的是支持的功能。正如文档所述,您在observe
函数中订阅的查询将使用新的props / state以及Mutation发生的任何时间进行更新。从这个意义上讲,它与Meteor非常相似,因为状态的更改更改(很像会话变量的更改)可以将查询重新加载到后端。
不同之处在于,与Meteor不同,Parse中的更改(例如,直接在db或其他前端实例中)不会传递给所有订阅的React前端。至少据我所知。这有点令人失望。很想听听更有经验的人,他们在过去的24小时里一直在搞乱ParseReact。