it-swarm.com.de

Wann wähle ich den React-Status Vs Redux Store?

Ich habe Redux gelernt und ein Teil, dem ich nicht klar bin, ist, wie ich eine Entscheidung zwischen dem Einsatz des React-Zustands und dem Redux-Store und dem anschließenden Auslösen von Aktionen treffen kann. Nach meiner Lektüre sieht es so aus, als könnte ich den React-Status anstelle des Redux-Speichers verwenden und trotzdem Dinge erledigen. Ich verstehe die Trennung der Bedenken bei der Verwendung von Redux Store und nur mit einer Container-Komponente und dem Rest davon als zustandslose Komponente, aber wie kann ich feststellen, wann der React-Status Vs Redux Store verwendet wird, ist mir nicht sehr klar. Kann jemand bitte helfen?

Vielen Dank!

21
InfiniteLoop

Wenn der Status nicht mit anderen Komponenten gemeinsam genutzt werden muss oder der Status nicht beibehalten werden muss, wenn die Komponente nicht bereitgestellt wird, können Sie sie einfach in den Status der Komponente setzen.

Sie können denken, dass der Redux-Store die Datenbank des Front-End ist. Wenn Sie etwa Produktdaten von einer API abrufen lassen, ist der Redux-Store der richtige Ort. Wenn Sie eine Dropdown-Komponente haben, die eine isOpen-Eigenschaft annimmt, kann das übergeordnete Element dieser Dropdown-Liste nur dropdownIsOpen als Komponentenstatus beibehalten.

Weitere Informationen finden Sie in der Antwort von Dan: https://github.com/reactjs/redux/issues/1287

Du hast auch gesagt 

nur 1 Containerkomponente und der Rest als zustandslose Komponente

Das ist falsch. Sie können mehrere Containerkomponenten haben. Eine Containerkomponente kann auch eine andere Containerkomponente enthalten.

29
CodinCat

Du hast absolut recht. Redux (und die Flux-Architektur im Allgemeinen) sind nur Formalismuswerkzeuge, die beim Erstellen großer Apps helfen. Sie sind überhaupt nicht notwendig.

Es gibt tatsächlich einen interessanten Beitrag mit dem Titel Sie brauchen Redux möglicherweise nicht von Dan Abramov, dem Schöpfer von Redux, der möglicherweise eine bessere Antwort bietet als ich: https://medium.com/@dan_abramov/you-might-not-need -redux-be46360cf367 # .7093fm1z8

1
Axnyff

Vom Buch:

Zunächst sollten wir immer daran denken, dass nur das Minimale benötigte Datenmenge sollte in den Staat gebracht werden. Zum Beispiel, wenn wir Wenn Sie auf eine Schaltfläche klicken, müssen Sie ein Etikett ändern, das wir nicht speichern sollten der Text des Labels, aber wir sollten nur ein Boolean-Flag speichern, das teilt uns mit, ob der Button angeklickt wurde oder nicht. Zweitens sollten wir Fügen Sie dem Status nur die Werte hinzu, die bei einem Ereignis aktualisiert werden sollen passiert, und für die wir die Komponente erneut rendern möchten . Eine andere Möglichkeit, um herauszufinden, ob der Staat der richtige Ort für .__ ist. Mit den Informationen zum Speichern können Sie überprüfen, ob die von uns gespeicherten Daten erforderlich sind außerhalb der Komponente selbst oder von ihren Kindern. Wenn mehrere Komponenten müssen die gleichen Informationen nachverfolgen, sollten wir Erwägen Sie die Verwendung eines Zustandsmanagers wie Redux auf Anwendungsebene.

1
zloctb