2017-04-10 1 views
0

Ich verstehe, dass mapstatetoprops unseren Redux-Anwendungsstatus auf unsere React-Komponentenrequisiten abbildet, aber ich verstehe nicht ganz, was hinter den Kulissen passiert, wenn ein Reducer einen neuen Zustand zurückgibt - wie löst dies ein erneutes Rendering von Komponenten aus Requisiten, die dem Status der Anwendungsebene zugeordnet sind?Wie löst das Aktualisieren des Status in einem Reduzierer ein erneutes Rendern der Komponente (n) aus?

In reinem React löst setState ein korrektes Rendern aus? Ist etwas Ähnliches (oder das Gleiche) über Redux passiert?

Antwort

0

Sowohl Redux als auch React-Redux verwenden flache Gleichheitsprüfung.

Insbesondere:

Redux's combineReducers Utility überprüft seicht Referenz Änderungen durch die Reduzierungen verursacht, die es nennt.

React-Redux's connect Methode generiert Komponenten, die Referenzänderungen am Stammzustand flach überprüfen, und die return values from the mapStateToProps Funktion, um zu sehen, ob die umhüllten Komponenten tatsächlich erneut gerendert werden müssen. Eine solche oberflächliche Überprüfung erfordert, dass die Unveränderlichkeit korrekt funktioniert.

0

Nun der springende Punkt, wenn Sie eine Komponente mit der redux "connect" -Funktion erstellen, ist, dass Sie hinter den Kulissen mit dem redux-Zustand verbunden sind und einen Listener für die Zustandsänderungen haben.

So erstellen Sie eine einfache Komponente, die seine Werte von Requisiten erhält, aber diese Requisiten werden aus dem Zustand mit der Verbindung mit "mapStateToProps" erhalten.

Nie in die Redox-React-Connect-Funktion eingetaucht, aber wenn Sie wollen, können Sie sicherlich weitermachen und sehen, was es genau macht.

Aber der Hauptpunkt ist, was ich oben erklärt habe.

Verwandte Themen