Ich bin neu in Redux - und ich versuche wirklich, das große Bild der Verwendung der funktionalen Programmierung zu bekommen, um unidirektionale Daten eleganter zu machen.Redux: Warum ist die Vermeidung von Mutationen so ein grundlegender Bestandteil der Verwendung?
Die Art, wie ich es sehe - jeder Reducer nimmt den alten Zustand, schafft einen neuen Zustand, ohne den alten Zustand zu mutieren und dann den neuen Zustand an den nächsten Reducer weiterzugeben, um dasselbe zu tun.
Ich bekomme, dass keine Nebenwirkungen verursacht, hilft uns, die Vorteile eines unidirektionalen Datenflusses zu erhalten.
Ich verstehe nur wirklich nicht, was so wichtig ist, den alten Staat nicht zu mutieren.
Das einzige, was mir einfällt, ist vielleicht das "Zeitreisen", von dem ich gelesen habe, denn wenn man an jedem Staat festhält, kann man "rückgängig machen".
Frage:
Gibt es andere Gründe, warum wir nicht wollen, den alten Zustand bei jedem Schritt mutieren?
Bis jetzt ist dies die beste Antwort auf den Kern der Frage.Wie ich schon sagte - "Ich bekomme, dass Nebenwirkungen, die keine Nebenwirkungen verursachen, uns helfen, die Vorteile eines unidirektionalen Datenflusses zu nutzen. Ich verstehe wirklich nicht, was so wichtig ist, wenn man den alten Zustand nicht mutiert." –
Warum? Das ist nicht die akzeptierte Antwort? Kurz gesagt, wenn Sie Objekte mutieren, können Sie den folgenden Vergleich nicht durchführen: immutableObject1 === immutableObject2. Stattdessen müssen Sie einen tiefen Vergleich durchführen, um festzustellen, ob sich eine Eigenschaft in den Objekten geändert hat. – Antoni4