2016-12-26 5 views
1

Ich habe eine native App reagieren, die viele Bildschirme verwendet, um die Daten in einem großen Objekt zu verwalten.Reducer/State Organisation für große Objekte

Zum Beispiel ist jeder der folgenden Punkte ein Bildschirm, um einen Teil von 1 Objekt in dieser App zu verwalten: Adresse, Kontakte, Bilder, Notizen und ein paar mehr.

Gibt es ein Problem, das mit Best Practices oder der Leistung kollidieren würde, um einen einzelnen Reduzierer zu verwenden, der das gesamte Objekt im Status zurückgibt?

oder sollte mein reduziert und Staat mehr Bildschirm-orientiert sein, nur die Eigenschaften des Objekts zurückgeben, dass jeder Bildschirm verarbeitet?

Antwort

2

Einfache Antwort. Es hängt

Abhängig von den von jedem reducer gespeicherten Daten. (Zustand von jedem gehalten)

Wenn es komplexe Daten besser eine separate reducer zu erstellen.

Wenn der Status jedes Bildschirms nur ein flaches JSON Objekt ist, behalten Sie alle in einem einzigen reducer.

Am Ende combineReducers() werden sie alle für uns an jedem Ort, den wir wollen, durch einfache connect() Methode von redux.

Im Allgemeinen werden wir einen reducer für container halten, wo Container die Komponenten enthält, die von reducer dieses Behälters hydratisiert werden.

Es ist kein Problem, auch wenn wir einen 'Reducer' für jede component beibehalten.

Und noch eine gute Praxis ist Zustand mit Bezug zu halten sagen:

cart => cartReducer die wiederum alle Aktionen über den Stand der cart wie ADD_TO_CART akzeptiert, RESET_CART, CHECKOUT_CART, DELETE_ITEM usw.

Und in Ihrem Fall, wenn Adresse, Kontakte, Bilder usw. auf eine einzige Entität bezogen sind, besser eine einzelne reducer pflegen.