2015-09-10 46 views
3

我開始使用ParseReact(https://github.com/ParsePlatform/ParseReact),但我想知道是否有任何方式的實時數據?就像MeteorJS或Firebase一樣。ParseReact實時類似Firebase和MeteorJS


解析數據添加到一個組件,它只是需要訂閱標準分析查詢。這是通過爲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操作的方式進行調度,允許更新在許多不同的組件之間進行同步,而不需要視圖之間的對話。所有標準的Parse數據突變都被支持,您可以在Data Mutation指南中閱讀更多關於它們的信息。

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

我試過的例子,但總是需要重新加載視圖。它不同於Firebase和MeteorJS

回答

3

我還想知道更多關於此...不確定這是否實際上是受支持的功能。正如文檔所述,您在observe函數中訂閱的查詢將使用新的道具/狀態以及發生突變的任何時間進行更新。從這個意義上說,它非常像Meteor,變化的狀態變化(很像對會話變量的更改)可以將查詢重新加載到後端。

與Meteor不同的是,不同於Meteor,Parse中的變化(例如,直接在數據庫中或從另一個前端實例中)不會傳遞到所有訂閱的React前端。至少據我所知。這有點令人失望。很想聽聽更有經驗的人,還沒有過去24小時一直在ParseReact搞亂。