2017-05-22 5 views
2

Ich benutze Angular, um meine Anwendung zu schreiben, und ich verwende Redux bis ngrx/store, um meinen Anwendungsstatus zu speichern.Sollte ich meinen Redux Store bei jeder Router-Navigation zurücksetzen?

Alles gut funktionieren, aber jetzt, dass meine Bewerbung ziemlich groß, ich kam mit der folgenden Beobachtung:

Für fast jede Seite/Ressource, verwende ich einen anderen Resolver, der aus meinem Backend holen, alle notwendigen Daten um diese bestimmte Seite richtig anzuzeigen und zu handeln.

Mit diesem Resolver kann ich diese Seite unabhängig vom vorherigen Zustand der Anwendung machen.

Also, wenn die Anwendung geladen und gestartet von, sagen wir mal: https://myapp.com/resourcetype1/resourceId

Der Resolver die resourcetype1 mit id resourceId laden, um für meine Seite aus dem Kasten heraus zu arbeiten.

, dass Wissen, ich mich gefragt, ob es eine gute Idee voll sein könnte meinen redux Speicher auf jedem Router Navigation zurückgesetzt starten.

ich denke, das zwei Vorteile haben könnte:

  • eine sauberere redux Speicher ohne Restdaten aus einer zuvor ausgeführt Seite sorgen.
  • Stellen Sie vor jeder 'Seitenanzeige' einen leeren Speicher zur Verfügung, mit dem Sie erkennen können, wann eine Seite Daten von einer zuvor geladenen Seite verwendet (und die beim direkten Laden mit ihrer urm geladen wäre).

So sind die Fragen:

  • Was denken Sie über diese Reflexion?
  • Was ist deine Gewohnheit diesbezüglich?
  • Setzen Sie Ihren Reduxspeicher irgendwann zurück oder nicht?

Antwort

2

Es hängt wirklich von Ihrer Anwendung ab! Wenn Sie beispielsweise Redux verwenden, weil jede Seite eine Menge komplexer Daten verarbeiten muss, aber auch jede Seite völlig unabhängig von den anderen ist, möchten Sie sie vielleicht zwischen jeder Änderung reinigen.

Es fühlt sich ein bisschen seltsam, obwohl. Über welche Ressource sprichst du? Werden Sie nicht zu einer früheren Ressource zurückkehren?

Innerhalb einer meiner Anwendungen habe ich Arbeitsbereiche. Und jeder Arbeitsbereich kann viele Daten enthalten. Benutzer werden ihren Arbeitsbereich nicht sehr oft ändern, und wenn sie es tun, wird es wahrscheinlich nicht auf den vorherigen zurückkommen. Wenn also ein Benutzer zu einem anderen Arbeitsbereich navigiert, reinige ich (fast) alle meine Reduzierungen.

Aber solange ein Benutzer auf demselben Arbeitsbereich ist, behalte ich die meisten Informationen. Das ist großartig, denn ganz am Anfang, wenn ein Benutzer gerade einen Arbeitsbereich ausgewählt hat, hat er kaum etwas.Wenn er dann in einigen Details navigiert, ruft die Anwendung Daten ab und speichert sie in den entsprechenden Reduzierern.

So, wenn der Benutzer zurückkommen, um einige Daten zu sehen, das erste Mal gibt es eine Latenz, während die Anwendung die Daten abruft und das zweite Mal und +, Benutzer sieht, was bereits in den Laden (sofort). Natürlich versucht es immer noch, die Daten zu holen, um sich zu vergewissern, dass es auf dem neuesten Stand ist, aber wenn es sich nicht ändert, kann der Benutzer damit atmen.

Verwandte Themen