2016-05-06 22 views
1

Angenommen, wir haben die folgende Situation: Wir haben einen Blog mit einem Posts-Feed. Wenn die Seite geladen wird, sollte bereits 3 <PostCard> s geladen sein, erstellt auf der Serverseite; Der Benutzer scrollt nach unten oder drückt eine Load more Schaltfläche und einige neue Postkarten sollten dynamisch zur Seite hinzugefügt werden.Wie erfolgreich XHP und ReactJS Implementierung einer Komponente zu mischen

Ich habe Hack XHP Komponente <PostCard> und wir haben die ReactJS Komponente <PostCard>.

So sollte ich:

  1. Implementieren Sie die ganze Sache auf der Client-Seite, in Reagieren und haben die render() Methode des XHP Komponente nur constructReactInstance()? (Ich habe irgendwann so etwas gemacht, aber ich habe bemerkt, dass es beim Laden der Seite einige Verzögerungen gibt, so etwas wie eine "Verzögerung").
  2. Implementieren Sie die Komponente zweimal, sowohl auf Server- als auch auf Clientseite? (Das ist ein totaler Schmerz ...)
  3. Etwas anderes ...?

Ich hoffe, dass ich mich klar und jemand wird mir helfen können: smile_cat:

+1

Wie Sie damit umgehen ist eine ausgezeichnete Frage, und ich wünschte, ich wüsste genug für eine gute Antwort für Sie. Ich werde versuchen, einige meiner FB-Kollegen dazu zu bringen, etwas zu schreiben. Mein Verständnis ist, dass wir bei FB meistens (1) für nicht-triviale Komponenten tun, aber einige unserer einfacheren Sachen, die wir tun (2), da wir noch ein bisschen voll-server-gerenderten Kram machen und Basiskomponenten in beiden Sprachen benötigen. –

+0

@JoshWatzman, ich freue mich auf die Antwort, über die Sie gesprochen haben. Vielen Dank für die Idee. Ich habe versucht (1) was XHPJS betrifft und ich fand heraus, dass das Repo für XHPJS veraltet und nicht gepflegt ist. Ich und viele andere Leute würden sicher einige Aktualisierungen davon schätzen! – Victor

Antwort

0

Es gibt keine Open-Source-Lösung meines Wissens, die auf einem Server HHVM Reagieren macht, so dass Sie gehen irgendwo einen Trade machen müssen. Die Art, wie Sie XHP aufrufen RenderReactInstance ist eine gültige Lösung für die Integration von XHP und Reagieren, aber Sie werden diese wahrgenommene "Verzögerung" leiden, wie die Seite lädt und dann analysiert und führt die JS. Caching kann helfen, aber es muss immer noch den JS analysieren und ausführen. Alternativ können Sie auch nur eine XHP-Komponente verwenden und die React-Komponenten für die kleineren Details speichern. Insbesondere möchten Sie möglicherweise nur, dass der Kommentarabschnitt Reagieren ist, wenn dies die vorherrschende interaktive Komponente ist, und etwas, das in Ordnung ist, etwas später als alles andere zu laden. Dadurch könnte der Blog den Inhalt beim Laden der Seite posten, aber Sie müssen möglicherweise andere Nicht-React-JS schreiben, um das asynchrone Laden neuer Komponenten zu verarbeiten. Es ist alles eine Abwägung und ich denke, Sie müssen nur bestimmen, was Sie für wichtiger halten.

+0

Es gibt eine Menge Unterstützung für serverseitige Reaktion Rendern http://facebook.github.io/react/docs/environments.html – Hamms

+0

Lassen Sie mich neu formulieren, gibt es keine Open Source _Hack_ Lösung zum Rendern React Rendering auf dem Server. Wird die Antwort aktualisieren. –

+0

[php-v8js] (http://php.net/manual/en/book.v8js.php) Einen nodejs-Daemon laufen zu lassen wäre wahrscheinlich ziemlich einfach – Hamms