Wann sollte ich hinzufügen, dass Redux auf eine app Reagieren?
Ich bin derzeit lernen zu Reagieren, und ich bin versucht, herauszufinden, wie man es mit Redux für den Aufbau einer mobilen app. Ich bin irgendwie verwirrt, wie die beiden verknüpft sind/verwendbar zusammen. Zum Beispiel habe ich dieses tutorial abgeschlossen in Reagieren https://www.raywenderlich.com/99473/introducing-react-native-building-apps-javascript, aber jetzt will ich spielen, um mit dem hinzufügen von ein paar Reduzierstücke/Aktionen, die app und ich bin nicht sicher, wo diese Band mit dem, was ich bereits getan habe.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Reagieren, ist ein UI-framework kümmert sich um die Aktualisierung der Benutzeroberfläche in Reaktion auf die "Quelle der Wahrheit", die ist in der Regel beschrieben als ein Zustand "im Besitz" von bestimmten Komponente. Denken Reagieren beschreibt die Reagieren Staatseigentum Konzept sehr gut, und ich empfehle, dass Sie gehen durch Sie.
Dieser Staat das Eigentum Modell funktioniert gut, wenn der Staat ist hierarchisch aufgebaut und mehr oder weniger entspricht der Komponente Struktur. Auf diese Weise bekommt der Staat "verteilt" über viele Komponenten, und die app ist einfach zu verstehen.
Jedoch manchmal weit entfernten teilen der app will Zugriff auf den gleichen Zustand, wenn Sie zum Beispiel cache abgerufenen Daten und möchten konsequent aktualisieren es überall zur gleichen Zeit. In diesem Fall, wenn Sie Folgen Sie den Reagieren, Modell, Sie werden am Ende mit einem Bündel von sehr großen Bauteilen auf der Oberseite der Komponente Baum, übergeben Sie eine Vielzahl von Requisiten nach unten durch einige zwischenkomponenten, die Sie nicht verwenden, nur um zu erreichen ein paar leaf Komponenten, die sich eigentlich kümmern, dass die Daten.
Wenn Sie sich in dieser situation, Sie kann (aber nicht müssen) Sie wieder einmal zu "extrahieren" dieser Zustand management-Logik von der top-level-Komponenten in separate Funktionen, die als "Verzögerer", und "verbinden" leaf Komponenten, die Sorge um, dass der Staat direkt, um es statt der übergabe der Requisiten, der sich durch die ganze app. Wenn Sie don ' T haben dieses problem noch nicht, Sie wahrscheinlich nicht brauchen Redux.
Schließlich ist zu beachten, dass Redux ist nicht eine endgültige Lösung für dieses problem. Es gibt viele andere Möglichkeiten, um verwalten Sie Ihre lokalen Staat außerhalb der Komponenten Reagieren—zum Beispiel, einige Leute, die nicht wie Redux sind zufrieden mit MobX. Ich schlage vor, Sie bekommen zuerst einmal ein festes Verständnis zu Reagieren-state-Modell, und dann bewerten Sie unterschiedliche Lösungen selbstständig, und bauen kleine apps mit Ihnen, um ein Gefühl für Ihre stärken und Schwächen.
(Diese Antwort ist inspiriert von Pete Hunt ' s reagieren-howto guide, ich schlage vor, Sie Lesen es auch.)
Habe ich herausgefunden, dass der ideale Weg für das hinzufügen von Redux auf eine Anwendung/ein stack ist zu warten, bis nach Sie/app/team fühlen sich die Schmerzen, die es löst. Sobald Sie beginnen, da Sie lange Ketten von
props
Aufbau und wird weitergegeben durch mehrere Ebenen von Komponenten oder Ihr selbst zu finden, die Orchestrierung komplexer Zustand Manipulationen/liest, dass könnte ein Zeichen sein, dass die app möglicherweise profitieren von der Einführung Redux et al.Ich empfehlen, eine app, die Sie haben bereits eingebaute mit "nur Reagieren" und sehen, wie Redux könnte passen hinein. Sehen Sie, ob Sie ordnungsgemäß eingeführt durch zupfen aus einem Stück, der Zustand oder die Reihe von "Aktionen" zu einer Zeit. Umgestalten in Richtung zu ihm, ohne sich aufgehängt auf ein big bang rewrite der app. Wenn Sie immer noch Schwierigkeiten zu sehen, wo es vielleicht Wert hinzufügen, dann könnte das ein Zeichen sein, dass die app entweder nicht groß oder Komplex genug, um Verdienst etwas wie Redux oben Reagieren.
Wenn Sie noch nicht über Sie kommen noch, Dan (Antwort oben) hat ein tolles kurz-video-Serie, die Spaziergänge durch Redux auf einer grundsätzlicheren Ebene. Ich sehr empfehlen, verbringen einige Zeit zu absorbieren Teile davon: https://egghead.io/series/getting-started-with-redux
Redux hat auch einige ziemlich große docs. Insbesondere die Erklärung eine Menge von "warum" wie http://redux.js.org/docs/introduction/ThreePrinciples.html
Vorbereitet habe ich dieses Dokument zu verstehen Redux. Hoffe, das klärt Ihre doute
-------------------------- REDUX-TUTORIAL ----------------------
AKTIONEN-
Aktionen sind Nutzlasten von Informationen, das senden von Daten aus Ihrer Anwendung in den store. Sie sind die einzige Quelle von Informationen für das Geschäft. Sie können Sie senden
nur mit speichern.dispatch().
Aktionen sind Reine javascript-Objekt. - Aktion muss [ type] - Eigenschaft gibt den Typ der Aktion, die ausgeführt wird. der Typ sollte als string definiert und konstant.
ACTION CREAToRS-----
---------------- ---- Action-Macher sind genau die Funktion, die Aktion erstellt
Es ist leicht zu verschmelzen die Begriffe handeln und handeln Schöpfer.
In der redux-action, der Schöpfer gibt eine Aktion.
zu initialte Versand übergeben das Ergebnis ato die dispatch () - Funktion.
Alernativly können Sie erstellen eine gebundene Aktion Schöpfer gibt, der wird automatisch löst.
nun können Sie disrectly nannte ihn
Dispatch() functionn können direkt aus dem Shop.dispatch(). aber wir
access es über eine helper-Methode connect ().
Actions.js.....................
Aktionen...........
Aktionen Schöpfer
export-Funktion addToDO(text){
return {
Typ: ADD_TODO,
text
}
}
.........................REDUZIERSTÜCKE..................................
Reduzierer, die angeben, wie die Anwendungen sich der Zustand ändert, in Reaktion auf die Aktionen an die Filiale gesendet.
Gestaltung der staatlichen shap
In redux alle applciation Zustand ist der Shop in einzelne Objekt. speichert man einige Daten sowie einige state.
{
visibilityFilter: 'SHOW_ALL',
todos: [
{
text: "Erwägen Sie die Verwendung redux',
abgeschlossen: true
},
{
text: "Kepp alle, die den Staat in einzigen Baum'
}
]
}
Umgang Mit Aktionen
---------------- die Reduzierstücke sind, die reinen Funktionen, die den vorherigen Zustand und eine sction, und geben Sie einen neuen Staat.
(previousState, action) => newState
Wir beginnen mit der Angabe der Initialen Zustand. Redux rufen unsere Reduzierstücke mit einem undefinierten Zustand für die erste Zeit. dies ist unsere chance, um den Zustand unserer app.
können Sie das gleiche tun mit ES6 Umgang mit der JS
................................. SPEICHERN...................................
Store ist ein Objekt, das Sie zusammenbringt. der store hat folgende Verantwortung
Hinweis. verwenden combineReducers() kombinieren mehrere Reduzierstücke in einem.
const store = createStore(todoapp); //das todoapp sind die Reduzierstücke
Erstens, Sie brauchen nicht zu fügen
Redux
zu Ihrer Anwendung, wenn Sie es nicht brauchen! Einfach, so zwingen Sie sich nicht, um in Ihr Projekt einbinden, wenn Sie es nicht benötigen, an alle! Aber das bedeutet nicht, dass Redux ist nicht gut, es ist wirklich hilfreich bei großen Anwendungen, also Lesen Sie weiter ...Redux ist ein state-management für Ihre Anwendung Reagieren, denken
Redux
wie einen lokalen Speicher, die Spur Ihres Staates, wie Sie gehen, können Sie den Zugriff des Staates auf jeder Seite und die route, die Sie wollen, auch zu vergleichen mit Flux haben Sie nur einen Shop, bedeutet eine Quelle der Wahrheit...Dieses Bild ansehen, um zu verstehen, was Redux Erstens auf einen Blick:
Auch dies ist, wie Redux stellt sich vor:
Auch als pro-Dokumentation gibt es Drei Prinzipien für
Redux
wie folgt:1. Single source of truth"
2. Staat ist nur-lese -
3. Änderungen mit reinen Funktionen
Also im Grunde, wenn Sie brauchen, um einen einzigen zu speichern, um zu verfolgen alles, was Sie gerne in Ihrer Anwendung, dann Redux ist praktisch, Sie können es überall in Ihrem app in einer beliebigen route... einfach mit
store.getState();
Ebenfalls die Verwendung der middleware Redux, die Sie tun können, zu verwalten, den Zustand viel besser, es gibt eine Liste von handy-Komponenten und middleware auf der offiziellen Seite von Redux!
Einfach, wenn Ihre Anwendung gonna groß sein, mit vielen Komponenten, Staaten und routing versuchen, implementiert Redux von Anfang an! Es wird Ihnen helfen, auf dem Weg sicher!
Wenn wir schreiben-Anwendung, die wir brauchen, um zu verwalten Status der Anwendung.
Reagieren die Staaten verwaltet, lokal in der Komponente, wenn wir teilen müssen, die Staaten zwischen Komponenten, die wir verwenden können, Requisiten oder Rückrufe.
Aber als Anwendung wächst, wird es schwierig zu verwalten, Staaten und Staatliche Transformationen.Staat und Staatliche Transformationen brauchen, um richtig verfolgt, um das Debuggen der Anwendungen.
Redux ist ein vorhersehbarer Zustand, container für JavaScript-apps, die es schafft Staat und Staatliche Transformationen und wird oft mit Reagieren,
Dem Konzept der redux erklärt werden kann, ist im folgenden Bild.
Wenn der Benutzer eine Aktion auslöst, wenn der Benutzer mit der Komponente interagieren und eine Aktion ausgelöst und lagern sich dann an den reducer in der Shop akzeptiert die action-und update-Status der Anwendung und in der Anwendung gespeichert Breite unveränderliche Globale variable, wenn es ein update im store die entsprechende view-Komponente abonniert den Staat, werden aktualisiert.
Denn der Staat wird Global verwaltet und mit redux es ist einfacher zu pflegen.
Dies ist wie redux funktioniert. Eine Aktion wird von jedem compoenent oder anzeigen. Action "type" - Eigenschaft und kann eine beliebige Eigenschaft, die enthält Informationen, die der Handlung passiert. Die Daten bestanden in Aktion relevant sein könnten, zu verschiedenen reducer, also gleiche Objekt übergeben bekommen, um verschiedene Druckminderer. Jeder reducer braucht/machen-sich Ihren Teil/Beitrag zu Staat. Die Ausgabe ist dann zusammengeführt und neuer Staat gebildet erhalten, und die Komponente muss abonniert werden, für die Staatliche change-Ereignis informiert wird.
Im Beispiel oben, braune Farbe hat alle 3 Komponenten RGB. Jeder reducer erhält die gleiche braune Farbe, und Sie trennen sich, Ihren Beitrag zu der Farbe.