Ich studiere tatsächlich das Flussmuster und es gibt etwas, das ich in Bezug auf die speichert .
Was genau sind sie?
Ich habe viele Artikel gelesen, und es scheint, dass es sich um die handelt domain.
Bedeutet dies, dass dies der „abstrakte“ Teil ist, der sich auf API-Aufrufe oder Backend-Aufrufe bezieht?
Es ist für mich nicht sehr klar.
Bearbeiten: Könnte es dasselbe sein wie die Winkelfabrik? Remote-Daten abrufen, eine Geschäftsaufgabe ausführen oder einige App-Status speichern (z. B. aktueller Benutzer verbunden)?
Kommentare
- Ein Link zu was genau Sie ' darüber zu sprechen wäre hilfreich. Meinen Sie dieses " Flussmuster "? flowxor.com/what-is-flux.html
- facebook.github. io / Flux / Docs / Übersicht.html # Inhalt
- Flux ist nichts anderes als das Publish / Subscribe-Muster mit der Einschränkung, dass alle Daten zuerst den Dispatcher durchlaufen. Es garantiert, dass die Daten nicht rückwärts gehen (und Verwirrung stiften). Dinge wie " Speichern Sie ", " Aktion " etc sind nur eine andere Art, Komponenten des Systems und die Daten, die weitergegeben werden, zu sagen.
Antwort
Ok, lassen Sie mich Ihnen Schritt für Schritt erklären.
1 Was ist Flux?
- Ein Muster
- Zentraler Dispatcher
- Unidirektionale Datenflüsse
- Listenelement
Sie nennen es auch aus einem bestimmten Grund Flux.
Flussimplementierungen
- Facebooks Fluss
- Alt
- Reflux
- Flummox
- NuclearJS
- Fluxible
Ein Chat mit Flux
Reagieren : Hey Aktion, jemand hat auf diese Schaltfläche „Cour speichern“ geklickt se ”-Taste.
Aktion : Danke Reagieren Sie! Ich habe einen Aktionsersteller beim Dispatcher registriert, daher sollte der Dispatcher darauf achten, alle Geschäfte zu benachrichtigen, die sich darum kümmern.
Dispatcher : Lassen Sie mich sehen, wen es interessiert, dass ein Kurs gespeichert wird. Ah! Es sieht so aus, als hätte der Store einen Rückruf bei mir registriert, also werde ich sie informieren.
Store : Hallo Dispatcher! Danke für das Update! Ich aktualisiere meine Daten mit der von Ihnen gesendeten Nutzlast. Dann werde ich ein Ereignis für die React-Komponenten ausgeben, die wichtig sind.
Reagiere : Ooo! Glänzende neue Daten aus dem Laden! Ich werde die Benutzeroberfläche aktualisieren, um dies widerzuspiegeln!
Fluss-API
Register (Funktionsrückruf) – „Hey Dispatcher, führen Sie mich aus, wenn Aktionen ausgeführt werden. -Store ”
Registrierung aufheben (String-ID) -“ Hey Dispatcher, hör auf, dir über diese Aktion Sorgen zu machen. -Store ”
waitFor (Array-IDs) -“ Aktualisiere diesen Store zuerst. –Store ”
Versand (Objektnutzlast) -“ Hey Dispatcher, informieren Sie die Geschäfte über diese Aktion . -Aktion ”
isDispatching () -“ Ich bin gerade damit beschäftigt, Rückrufe zu versenden. “ / p>
Die Frage, die wir uns stellen, lautet also
Also ist Flux ein Publish-Subscribe-Modell?
Nicht ganz.
Unterscheidet sich in zweierlei Hinsicht:
1. Jede Nutzlast wird an alle registrierten Rückrufe gesendet.
2. Rückrufe können auf andere Rückrufe warten
Zusammenfassung
Fluss ist ein Muster für unidirektionale Datenflüsse. Aktionen kapseln Ereignisse. Der Dispatcher ist ein zentraler Hub, der Rückrufe enthält. Speicher halten den App-Status. Viele Implementierungen
Kommentare
- Mein erstes Problem Ermöglicht dieser Status der Anwendung, unterschiedliche Daten der Remote-API-Entitäten zu haben: – /
- Was meinen Sie mit Status erlaubt? Überall dort, wo eine Änderung ausgegeben wird, wird sie als Reaktionsansicht und erneut als Zustandsänderungsmethode
- bezeichnet. Ich habe es mit einer API zu tun und speichere dann die Daten in meinen Filialen. Was ist, wenn ein Benutzer die Remote-Daten ändert? Ich werde jetzt einen Unterschied zwischen Client und Server haben.
- Wo finde ich warum? Wenn der Dispatcher und das Geschäft nur zur Ansicht weitergeleitet werden sollen, warum kann dann ' die Aktion nicht direkt aktualisiert werden?Warum es Zwischenhändler gibt
- @MuhammadUmer: Der Dispatcher ist einer für die Anwendung und der Speicher basiert auf der Komponente in der Anwendung. Um die Redundanz zu beseitigen, wurden Zwischenhändler eingeführt.
Antwort
Ein einfaches Beispiel nachschlagen ( https://github.com/facebook/flux/tree/master/examples/flux-todomvc/ ), „Geschäfte verwalten den Anwendungsstatus für eine bestimmte Domäne innerhalb der Anwendung.“ Das heißt, sie enthalten Daten über den Status eines Aspekts der Anwendung und den gesamten Code, um ihn zu ändern. Immer wenn ein neues Update vom Dispatcher angezeigt wird, entscheiden alle Stores, wie ihre Daten als Antwort aktualisiert werden sollen, und benachrichtigen dann die Ansichten, dass sich die Daten geändert haben. In den Beispielen enthalten Stores Dinge wie „Liste der nicht sichtbaren Threads“ (wobei der Dispatcher sie benachrichtigt, dass eine neue Nachricht eingetroffen ist oder eine alte gelesen wurde und die Ansichten dem Benutzer die Nachrichtenthreads anzeigen) und „aktuelle Wiedergabezeit und“ state. ”
Technischer: Sie sind die Zwischenschicht des Frameworks, die Rückrufe beim Dispatcher registriert, um Aktualisierungen zu erhalten, und benachrichtigt dann die Ansichten, wenn sich der Status der Daten ändert. (Die Ansichten senden dann möglicherweise Aktionen an den Dispatcher zurück.) Sie implementieren eine abstrakte Schnittstelle, in der jeder Store einen Rückruf beim Dispatcher registriert und Ereignisse an die Views sendet, aber jeder Store scheint eine bestimmte Domäne auf konkrete Weise darzustellen. (Gibt es Gegenbeispiele?)
Antwort
Speicher sind Bereiche des Codes, in denen der Anwendungsstatus und die komplexe Logik gespeichert sind. Ein Grund für sie ist, dass mehrere Ansichten wahrscheinlich dieselben Daten verwenden, diese jedoch auf unterschiedliche Weise anzeigen oder einige, aber nicht alle Daten für eine bestimmte Domäne anzeigen. Ein Benutzer meldet sich beispielsweise an und Sie erhalten seinen Vor- und Nachnamen, seine E-Mail-Adresse, sein Foto, seine Stadt, seine Adressnummer, seine Telefonnummer usw. Diese Informationen werden in separaten Ansichten angezeigt. Anstatt Daten über Ansichten hinweg zu duplizieren, können wir einen Store namens UserStore verwenden, in dem die Daten für den Benutzer gespeichert werden. Dies vereinfacht das System, indem „ein Ort zum Ändern“ angegeben wird, wenn die gespeicherte Logik oder die gespeicherten Daten geändert werden müssen. Es gibt viele andere Gründe, einen Store zu verwenden, aber das ist meiner Meinung nach der offensichtlichste. P. >