Wo set-cookie Isomorph Redux-Anwendung?
Habe ich 3 Allgemeine Fragen über redux und isomorph Anwendung:
- Was ist der beste Weg, zu teilen 'runtime' - Daten zwischen client und server?
Zum Beispiel, wenn der Benutzer eingeloggt in eine entfernte API, Speichere ich die session-Objekt in cookies. So, nächste mal die client-Anfragen meine front-end, front-end-server Lesen kann, die cookies und initialisieren Sie die redux-Shop mit seiner vorherigen Sitzung. Der Nachteil dieser Lösung ist, dass der client zur Validierung/Invalidierung der session am boot (z.B. in componentDidMount der root-Komponente).
Sollte ich den Antrag für die Sitzung der server-Seite, anstatt es zu Lesen von cookies? - Wo soll ich ausführen die Bedienung der cookie-Speicherung in Aktion, Schöpfer oder Reduzierstücke? Sollte ich das cookie speichern in meinem Getriebe Griff die Benutzer-session?
- Wo sollte ich führen den Betrieb leiten den Benutzer (über reagieren-router)? Ich meine, wenn meine user sich erfolgreich angemeldet hat, Woher soll ich Versand der redirect action (von der loginActionCreator sobald die Anmeldung Versprechen geklärt ist?, irgendwo anders? )
Vielen Dank im Voraus.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich es geschafft, eine wirklich nette app-Struktur.
Hier ist was ich gefunden habe für jeden die Fragen:
Ich nur teilen zwischen meinem client und dem front-end-server der API-server-token über cookies. Jedes mal, wenn die client-Anforderung der Website. Die front-end-server ruft die API-server überprüft die Sitzung. Wenn diese Server sind auf dem gleichen Netzwerk, es ist wirklich sehr schnell (< 5ms). Ich habe auch prefetch einige nützliche Daten für den client auf dem server vor dem ersten machen. Ich Schaffe es, meine Anwendung geladen und bereit (javascript geladen) in den client 600ms. Es ist ziemlich anständig.
Die Maßnahme der Speicherung der cookie ist in meinen Aktionen Schöpfer. Als Ethan Clark sagte, wir müssen weiter Reduzierstücke rein. Es ist viel einfacher zu testen.
Ich trotzdem die Umleitung in mein signin Schöpfer sobald der Benutzer authentifiziert ist. Ich denke, es ist einfacher zu testen als auch zum Versand die Aktion nach dem Versprechen der Auflösung in der Komponente oder an anderer Stelle.
In der Tat, in diesem Sinne ermöglicht es uns, eine app wirklich einfach zu testen (erwarten Sie für die Aktionen-Ersteller, wo Sie müssen Tonnen von Spionen).
Hoffe, es wird jemand helfen.
Vielen Dank für die Teilnahme.
Frage 2: führen Sie die cookie-Speicherung in Ihrem action-Schöpfer. Reduzierstücke muss rein bleiben Funktionen.
Ich bin wirklich Leid, dass ich nicht wissen, die Antworten auf 1 & 3, aber ich hoffe, dass dies hilft!
Sollten Sie wahrscheinlich brechen Sie Ihre Fragen in bis zu drei unterschiedliche stack-überlauf Fragen, denn Sie sind alle ein wenig anders.
Stimme ich mit Ethan, Ihr Reduzierstücke sollten rein mit keine Nebenwirkungen. Das ist das Ziel (aka best practice) sowieso. Aber Ben Nadel wurde die Erkundung Fragen entlang dieser Linien und schlägt die Schaffung eines workflow-Ebene zu verwalten, business-Logik, anstatt Platzierung, die Last auf dem Speicher. Sie sollten überprüfen, seine Die Verwaltung Lokal gespeicherter Daten mit Redux in AngularJS Artikel für mehr Informationen darüber.
Cookies sind synchron -, die Sie können entweder Hydrat und abonnieren Sie Ihre Geschäft oder eine meta-reducer, die wickelt sich um den Abschwächer, bevor es Hinzugefügt wird createStore. Hier ein Beispiel, beide unten: