2017-10-11 4 views
1

Ich arbeite an der Gestaltung der Redux-Seite einer Anwendung, speziell mein State-Objekt.Redux: Array oder Objekt zum Speichern einer Liste von Blogs?

Ich werde die Verwendung eines POST API ähnlich wie dies machen:

/api/posts 

mit einem Verfahren zur POST.

Wenn ich Regeln folgte, die ich in der Vergangenheit verwendet habe, würde ich mit einer posts-Eigenschaft und einer activePost-Eigenschaft auf meinem globalen State-Objekt enden.

Die Posts-Eigenschaft, die vermutlich von ihren Posts Reducern erzeugt würde, wäre wahrscheinlich ein Array und es würde die Liste aller verschiedenen Posts enthalten, die ich in der Anwendung habe.

Ich möchte meine Liste der Beiträge innerhalb eines Objekts statt eines Arrays speichern und nur die Notwendigkeit für die activePost vollständig beseitigen. So würde es so aussehen:

{ 
    4: {title: 'Hello', id: 4, content: 'Hi', tags: 'greetings'}, 
    12: {title: 'Bye', id: 12, content: 'Bye', tags: 'greetings'}, 
} 

Beachten Sie, dass innerhalb dieses Objekts, ich sage, dass der Schlüssel ist die ID des Beitrags ist und der Wert der Post selbst. Also beginnt das Objekt an der Nummer 4 und schließt sich an der letzten geschweiften Klammer. Es hat eine ID von 4 und einen Schlüssel von 4, weil es die ID des Posts ist. Das Gleiche gilt für die nächste unten.

Der Grund dafür ist, dass es einfacher ist, einen bestimmten Post aus allen Posts zu finden, die ich erhalte.

Kann dies auch mit großen Pfostensätzen funktionieren? Wäre das eine gute Praxis? Warum oder warum nicht? Wenn dies keinen Zweck erfüllt, geben Sie bitte einen dokumentierten Grund an. Vielen Dank.

+0

Hey, ich bearbeite keine Erlaubnis. Also können Sie bitte einige weitere Tags hinzufügen wie redux, javascript. Auf diese Weise wird mehr Publikum erreicht. Vielen Dank – vs1682

Antwort

0

Ich glaube, es ist in der Tat Best Practice, ein sehr fortschrittliches Konzept. Ich habe Kollegen gehört, die sagen, dass ein Array am besten für große Datensätze funktioniert, aber nicht viel Dokumentation, um ihre Behauptungen zu belegen.

Dies ist wahrscheinlich eine sehr herausfordernde refactor mit so etwas wie erfordern würde:

state.posts[postId] 

und dies würde zurückkehrt die gegebene Post, die postID von der ID-Nummer aus der URL kommt und dann diese Zahl mit nachschlagen gegen das Objekt der vielen verschiedenen Beiträge.

Mein Verständnis ist, dass dies in der Produktion getan wird und mit großen Anwendungen, die gut skalieren, so dass es tatsächlich mit großen Daten arbeiten würde.

Verwandte Themen