ReactJS: Was ist die Reale Welt mit der Unveränderlichkeit Helfer Reagieren?
Reagieren offiziellen Dokument enthalten Unveränderlichkeit Helfer.
Was wäre, einige der realen Welt Verwendung solcher Helfer? Ich glaube, ich bin fehlt etwas wirklich grundlegendes hier.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Reagieren wird davon ausgegangen, dass Objekte in Zustand unveränderlich sind, was bedeutet, dass, wenn Sie möchten hinzufügen oder entfernen Sie einige Elemente in Ihrem array erstellen Sie eine neue mit dem zusätzlichen element halten Vorherige array unangetastet:
Mithilfe unveränderliche Objekte können Sie leicht überprüfen, wenn der Inhalt des Objekts hat sich geändert:
push
ist ein basic-Befehl, der konnte auch dadurch erzielt werden, dassconcat
. Aber die wahre Schönheit kommt, wenn man tief verschachtelte arrays oder Objekte von Daten.ReactJS Staat sollte möglichst unveränderlich. Das bedeutet, dass jedesmal, wenn
render()
genannt wird,this.state
sollte ein anderes Objekt. Das heißt:oldState == newState
ist falsch undoldState.someProp == newState.someProp
ist auch falsch.So, für einfache Status-Objekte, es gibt keinen Zweifel, Sie sollte geklont werden. Allerdings, wenn Ihr Zustand Objekt ist sehr Komplex und tief, das Klonen der gesamten Staat könnte sich auf die Leistung auswirken. Weil das so ist, Reagieren die Unveränderlichkeit Helfer ist smart und es nur Klone, die die Objekte, die es denkt, es sollte Klonen.
Dies ist, wie Sie es tun, wenn du clone der Staat selbst:
Dies ist, wie Sie es tun, wenn Sie lassen, Reagieren die Unveränderlichkeit Helfer bestimmen, welche Objekte sollte es eigentlich Klon:
Obigen Beispiel ausgeführt werden wird, besser als die erste, wenn die
state
ist zu Komplex und zu tief.Reagieren-Anwendung bevorzugen, Unveränderlichkeit, gibt es zwei Möglichkeiten (von Facebook) zur Unterstützung der Unveränderlichkeit, ist die Verwendung von immutable.js, dass eine vollständige Unveränderlichkeit Bibliothek, ein weiterer ist der unveränderlich Helfer, dass ist eine leichte Helfer. Sie brauchen nur zu wählen, zu verwenden in einem Projekt.
Nur disadvantege von immutable.js ist, dass Sie ein Leck sich in Ihrer gesamten Anwendung, einschließlich der Geschäfte und View-Komponenten, wie z.B.,
Wenn Sie unveränderlich Helfer, können Sie Kapseln die Unveränderlichkeit Operationen an der Stelle, wo die updates geschehen (wie z.B. Läden und Redux Reduzierstücke). Daher, Ihrer Ansicht Komponenten kann mehr wiederverwendbar.