2015-07-06 16 views
5

Ich habe viel über flux + react gelernt für das kommende Projekt vorzubereiten, das React + Flux (alt Implementierung) verwenden wird. Während mir alle Konzepte hinsichtlich der Flussarchitektur und wie sie alle miteinander verbunden sind, klar sind. Ich habe Zweifel, wie mit seiten/view-spezifischen Daten umgegangen werden soll.Fragen zu State vs. Flux Stores für Multi-Feature-Anwendung

In einer großen Multi-Feature-Anwendung ist es selbstverständlich, dass anwendungsweite Status/Daten wie Authentifizierungsstatus oder andere globale Features von flux action/store gehandhabt werden, um den komponentenübergreifenden Status problemlos zu handhaben. Wenn es sich um eine Winkel 1-Anwendung handelt, würden diese Daten/Zustände zu einer Fabrik gehen.

Für page/view-specific data/state, wo es nie wirklich über Top-Level-Komponente kommunizieren würde, wäre es sinnvoller, nur die Daten im Komponentenstatus zu verwalten? Wenn meine Anwendung z. B. verschiedene Mini-Apps enthält, die nicht miteinander in Beziehung stehen, z. B. eine Wettervorhersageansicht und ein Taschenrechner, würde die Komponente nicht wiederverwendbarer, wenn ihr Status intern verwaltet wird?

Ich stelle mir nur vor, wenn ich eine "Taschenrechner" -Komponente habe, die ihren Zustand selbst enthält, hätte sie eine sehr selbständige wiederverwendbare Taschenrechnerkomponente, die ich irgendwo in meine Anwendung setzen kann, und trotzdem, wenn der Taschenrechner steht Wird in einem Flussspeicher gespeichert, dann wird die Komponente viel mehr Abhängigkeiten haben. Letztlich, sagen wir, wenn ich in Zukunft zwei Taschenrechner-Instanzen in meiner Anwendung zulassen möchte, wenn Flux-Stores verwendet werden, müsste ich die Struktur so ändern, dass sie eine Instanz-ID im Laden enthält. Wenn jedoch Komponentenzustände verwendet werden, muss ich nur zwei Komponenten erstellen.

Ich bin noch relativ neu in React + flux und versuche immer noch, das ganze Konzept richtig zu machen. Fühlen Sie sich frei, mich zu korrigieren, wenn überhaupt.

Antwort

1

Ich denke, Sie haben es genau richtig. Nur ein paar Gedanken ...

  • Wo Sie irgendeine Koordination zwischen den Komponenten zu tun haben (Geschwister, Eltern-Kind), Geschäfte sind sehr hilfreich und ich finde sie viel besser als zu versuchen, Requisiten hin und her

    passieren
  • Wenn Daten geändert werden und auf dem Server gespeichert werden müssen, ist die Verwendung eines Informationsspeichers sehr hilfreich. Ob der Speicher tatsächlich die Daten speichert - oder nur die Komponente benachrichtigt, dass das Update erfolgreich war, hängt von Ihrer Anwendung ab.