Ich habe eine app, die Instagram sehr ähnlich ist, aber anstatt einen Hauptfeed zu haben, kann der Benutzer mehrere Feeds basierend auf den Ereignissen haben, die er/sie besucht. Ich verwende redux für den Staat Management und zur Zeit habe ich diese Reduzierungen:Sollen die Reduzierungen verschachtelt werden?
- Feed
- Menschen
- Zeitplan
- Benutzer
- Navigation
Mein Feed Reduzierer sieht wie aus:
{
allEvents: [],
event: {
id: 123,
name: 'Foo'
},
items: [
{
id: 23,
imageUrl: 'http://img.com/foo',
likes: [{ id: 1, user: {...} }, { id: 2, user: {...} }],
comments: [{ id: 1, text: '...', user: {...} }, { id: 2, text: '...', user: {...} }]
}
]
}
So mein derzeitiger Zustand Struktur wie folgt aussieht:
{
feed,
people,
schedule,
user,
navigation
}
Aber im Moment der Benutzer jedes Mal aktuelle Ereignis der gesamten Vorschub Zustand ändert durch einen neuen Zustand für das jeweilige Ereignis ersetzt wird, so dass, wenn die Benutzer kommt zurück zum vorherigen Ereignis der gesamte Feed benötigt wieder abgerufen werden, ist das gleiche mit Menschen Reducer und Zeitplan, der von dem Ereignis abhängt. Der Benutzer hat auch einen eigenen Profil-Feed, der die Feed-Elemente des Benutzers anzeigt. Und um dieses Futter zu haben, würde ich verdoppeln müssen, was ich im aktuellen Futterreduzierer habe, also dachte ich, es wäre besser, mehrere Futtermittel zu haben, innerhalb des Ereignisreduzierers.
Ich frage mich, ob der Staat Struktur wie diese nicht besser wäre:
{
events: {
items: [
feed,
people,
schedule
]
}
user,
navigation
}
Dann las ich redux#815 oder redux#994, dass es zu nisten Reduzierungen nicht der beste Weg ist. Sollte es mehr oder weniger wie folgt aussehen:
{
feed: {
feedIds: [23, 24, 25],
byId: {
23: {
items: [123, 124, 125]
}
}
},
items: {
itemsIds: [123, 124, 125, 126, 127],
byId: {
124: {
id: 124,
image: 'http://img.com ',
likes: [1, 2, 3]
}
}
},
likes: {
likesIds: []
},
events: {
eventIds: [1, 2, 3],
byId: {
1: {
id: 1,
name: 'TYW Croatia w34'
feedId: 23,
peopleId: 12,
scheduleId: 1
}
}
},
people: {...}
}
Was in diesem Fall die beste Praxis ist und welche Art und Weise die meisten performant ist?
Haben Sie Beispiele für Apps, die auf diese Weise erstellt wurden? – knowbody
oder können Sie mir ein Beispiel für das Absenden einer Aktion zeigen, wenn der Feed vom Server abgerufen wird? Feed hat Elemente Array mit Kommentaren und Likes verschachtelt – knowbody
Ich habe eine Liste von _some_ tatsächlichen Redux-basierten Anwendungen über https://github.com/markerikson/redux-ecosystem-links/blob/master/apps-and-examples.md . Durch diese zu schauen könnte nützlich sein. – markerikson