2017-01-22 3 views
7

Ich habe viel mit Server-Side-Rendering mit RR 3 gearbeitet, also wollte ich sehen, wie es im Kontext von v4 funktioniert. Ich folgte dem Tutorial von der Website, aber da das Rendering jetzt zusammen mit der Route-Übereinstimmung stattfindet, gibt es keine Möglichkeit, die Prefetch-Daten wie zuvor zu implementieren.Server-Rendering mit react-router v4 und Vorabruf von Daten

Hier ist, wie ich verwenden Server mit v3 Rendering zu tun: https://github.com/alexnm/react-seed/blob/master/server/index.js

auf der Match-Funktion Basierend ich Komponentenbaum all Prefetch-Funktionen von allen und mit einem Promise.all dann warten nennen würde für sie, beenden Dann triggert die renderToString Funktion und gibt das HTML zurück.

In RR4, haben wir nur die <ServerRouter> Komponente, so dass die aktuelle Lösung kam ich mit dupliziert den Code machen: https://github.com/FortechRomania/react-redux-complete-example/blob/master/src/server/index.js

ich auch die render Funktion auf dem <Match>-Tag mit den Prefetch-Aktionen auslösen . Es ist hässlich und führt alle Arten von Abhängigkeiten in die übergeordnete Komponente der Seite ein, die ich mit vorab abgerufenen Daten rendern möchte.

Was fehlt mir hier? Hat jemand eine bessere Lösung für dieses Szenario gefunden? Ich habe noch nichts Nützliches gefunden.

+0

genau hätte das gleiche Problem:/Es gibt noch kein offizielles Beispiel ist oder kein Tutorial, wie es geht ... Ihre Lösung ist die einzigen, die ich gefunden - danke! – szimek

+0

Ich plane in den kommenden Wochen etwas mehr in diese zu graben, werde mit einer Antwort zurückkommen, wenn ich –

+0

finde Für jetzt habe ich die Codebasis auf v3 umgestellt, aber die Frage ist immer noch gültig für die neue v4 beta api –

Antwort

Verwandte Themen