1. Was ist Redux?React ist nur eine Abstraktionsschicht für das DOM, keine vollständige Lösung für Webanwendungen. React ist lediglich ein leichtes View-Layer-Framework. Wenn Sie eine große Anwendung erstellen möchten, müssen Sie es mit dem View-Layer-Framework Redux verwenden. Es wird hauptsächlich in Szenarien mit mehreren Interaktionen und mehreren Datenquellen verwendet. Es ist nicht notwendig, es zu verwenden, aber Sie müssen wissen, wie man es verwendet. 2. Das Redux-PrinzipDas Prinzip von Redux wird zunächst anhand eines Bildes erklärt, das leicht verständlich ist Zuerst führt der Benutzer eine Aktion aus. speichern.Versand(Aktion); Dann ruft der Store automatisch den Reducer auf und übergibt zwei Parameter: den aktuellen Status und die empfangene Aktion. Der Reducer gibt den neuen Status zurück. let nächsterZustand = todoApp(vorherigerZustand, Aktion); Sobald sich der Status ändert, ruft der Store die Abhörfunktion auf. //Abhörfunktion festlegen store.subscribe(listener); Der Listener kann den aktuellen Status über store.getState() abrufen. Wenn Sie React verwenden, kann dies eine erneute Darstellung der Ansicht auslösen. Funktion Listener () { Lassen Sie newState = store.getState(); Komponente.setState(newState); } 3. Wie verwende ich Redux?(1). Installieren Sie Redux, erstellen Sie einen Redux-Ordner und erstellen Sie store.jsDiese Datei wird speziell zum Freigeben eines Store-Objekts verwendet. Die gesamte Anwendung hat nur ein Store-Objekt. Installieren Sie Redux: //createStore einführen, das speziell zum Erstellen des Core Store-Objekts in Redux verwendet wird. importiere {createStore, applyMiddleware} von 'redux'. //Stellen Sie den Reducer vor, der die Count-Komponente bedient importiere countReducer aus './count_reducer' //Führen Sie Redux-Thunk ein, um asynchrone Aktionen zu unterstützen Thunk von „Redux-Thunk“ importieren //Den Laden freilegen //applyMiddleware ist die mittlere Position mit Thunk exportiere standardmäßig createStore(countReducer,applyMiddleware(thunk)) (2) Erstellen Sie reducers.js
const initState = 0 //Initialisierungsstatus exportiere Standardfunktion countReducer(preState=initState,action){ // Konsole.log(preState); //Vom Aktionsobjekt abrufen: Typ, Daten const {Typ, Daten} = Aktion //Entscheiden Sie, wie die Daten basierend auf dem Typschalter (Typ) verarbeitet werden sollen { Fall 'Inkrement': //wenn es hinzugefügt werden soll, returniere preState + Daten case 'decrement': //Wenn es eine Verringerung ist, returniere preState - data Standard: Vorstatus zurückgeben } } (3) Einführung von store.subscribeVerwenden Sie hauptsächlich das Abonnieren, um jede Änderung im Geschäft zu überwachen // öffentlicher index.js Store aus „./redux/store“ importieren //subscribe aktualisiert die Daten, wenn sich die Daten im Store ändern. Wenn Sie es hier schreiben, wird der globale store.subscribe(()=>{ ReactDOM.render(<App/>,document.getElementById('root')) }) (4) Einführung in react-reduxreact-redux ist eine vom Autor von Redux gekapselte Bibliothek. Es handelt sich um ein Drittanbietermodul, das Redux weiter vereinfacht und einige zusätzliche APIs bereitstellt (wie z. B. Provider, Connect usw.). Durch die Verwendung können wir unseren Code besser organisieren und verwalten und die Verwendung von Redux in React bequemer gestalten. Zähldatei erstellen //Count-UI-Komponente importieren importiere CountUI von '../../components/Count' //Führen Sie Connect ein, um UI-Komponenten und Redux zu verbinden importiere {connect} von 'react-redux' ------------------------------------------------------------- /* 1. Die Funktion mapStateToProps gibt ein Objekt zurück; 2. Der Schlüssel im zurückgegebenen Objekt wird als Schlüssel verwendet, der an die UI-Komponenteneigenschaften übergeben wird, und der Wert wird als Wert verwendet, der an die UI-Komponenteneigenschaften übergeben wird 3.mapStateToProps wird verwendet, um den Status zu übergeben*/ Funktion mapStateToProps(Zustand){ returniere {Anzahl:Zustand} } ----------------------------------------------------------------- /* 1. Die Funktion mapDispatchToProps gibt ein Objekt zurück; 2. Der Schlüssel im zurückgegebenen Objekt wird als Schlüssel verwendet, der an die UI-Komponenteneigenschaften übergeben wird, und der Wert wird als Wert verwendet, der an die UI-Komponenteneigenschaften übergeben wird 3.mapDispatchToProps wird verwendet, um die Operationsstatusmethode zu übergeben*/ Funktion mapDispatchToProps(dispatch){ zurückkehren { jia:Nummer => Versand(ErstelleIncrementAction(Nummer)), jian:Nummer => Versand(erstelleDekrementaktion(Nummer)), jiaAsync:(Zahl,Zeit) => dispatch(createIncrementAsyncAction(Zahl,Zeit)), } } //Verwenden Sie connect()(), um eine Count-Containerkomponente zu erstellen und verfügbar zu machen. Exportieren Sie standardmäßig connect(mapStateToProps,mapDispatchToProps)(CountUI). //Verbesserte Standardverbindung für den Export( Zustand => ({Anzahl:Zustand}), //Allgemeines Schreiben von mapDispatchToProps /* dispatch => ({ jia:Nummer => Versand(ErstelleIncrementAction(Nummer)), jian:Nummer => Versand(erstelleDekrementaktion(Nummer)), jiaAsync:(Zahl,Zeit) => dispatch(createIncrementAsyncAction(Zahl,Zeit)), }) */ //Abkürzung für mapDispatchToProps { jia:createIncrementAction, jian:ErstelleDekrementAktion, jiaAsync:createIncrementAsyncAction, } )(Zählen) Aktionsobjekte generieren und separat verfügbar machen /* Diese Datei wird speziell zum Generieren von Aktionsobjekten für die Count-Komponente verwendet*/ importiere {INCREMENT,DECREMENT} von '../constant' //Synchronisierte Aktion bedeutet, dass der Wert der Aktion ein allgemeines Objekt vom Typ Object export const increment = data => ({type:INCREMENT,data}) ist. exportiere const decrement = Daten => ({Typ:DECREMENT,Daten}) //Asynchrone Aktion bedeutet, dass der Wert der Aktion eine Funktion ist. Asynchrone Aktion ruft normalerweise synchrone Aktion auf, aber asynchrone Aktion ist nicht erforderlich. export const incrementAsync = (Daten, Zeit) => { Rückkehr (Versand) => { setzeTimeout(()=>{ Versand(Inkrement(Daten)) },Zeit) } } Damit schließen wir diesen Artikel zum Funktionsprinzip und zur Verwendung von Redux ab. Ich hoffe, dass es für jedermanns Studium hilfreich sein wird, und ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird. Das könnte Sie auch interessieren:
|
<<: Einige einfache Implementierungscodes des Formularelements nehmen die Registrierung als Beispiel
>>: SQL IDENTITY_INSERT-Fallstudie
Inhaltsverzeichnis Prinzip Vorbereitung der Netzw...
Der Code unter dem Easyui-Framework lautet wie fo...
Fügen Sie das Tag <Head> hinzu <meta http...
1. Unter 800 x 600 gibt es keine horizontale Bild...
1. Python wird beim Start automatisch ausgeführt ...
Inhaltsverzeichnis Lebenszyklusfunktionen Allgeme...
Der Zweck der Verwendung von HTML zum Markieren v...
Ich habe vorher ein Testprogramm geschrieben, in d...
Produktdesigner sind mit komplexen und großen Fert...
1. Hintergrund Auf jeder OLTP-Datenbankinstanz vo...
Die unten zusammengefassten Wissenspunkte werden ...
Bei Zellen können dunkle Rahmenfarben individuell...
Einführung in HTML HyperText-Auszeichnungssprache...
Es gibt zwei Tabellen, und die Datensätze in Tabe...
Als ich kürzlich an einem Projekt arbeitete, wurd...