Ich verwende React + Redux, um eine Webapp zu erstellen, die mit einer API kommuniziert, ähnlich wie in https://github.com/reactjs/redux/tree/master/examples/real-world gezeigt.Gute Strategie für Reducer in react + redux?
Meine API gibt Künstler-, Album- und Titel-Listen zurück und ermöglicht es, eine Liste von ihnen oder einem einzelnen Interpreten, Album oder Titel abzufragen. (Betrachten Sie es als/Alben,/Künstler und/Tracks, mit zusätzlichen/Album /: ID,/Künstler /: ID und/Tracks /: ID).
Ich implementierte eine API-Middleware und verwendete einen paginate
Reducer wie im obigen Beispiel, um einen Speicher mit paginierten Tasten für das Abrufen von Alben, Künstlern und Songs zu erhalten.
Jetzt möchte ich die singulären Aufrufe implementieren, um ein einzelnes Objekt zu erhalten und es anzuzeigen. Aber ich bin mir nicht sicher über den richtigen Umgang mit meinen Reduzierstücken. Sollte ich nur combineReducers
mit zusätzlichen Reduzierungen artist
, album
und track
verwalten und speichern diese Elemente?
Eine andere Frage, die ich mit Reducer-Management in Verbindung gebracht habe, ist, dass ich bei meinem jetzigen Setup 3 paginate
Reducer mit jeweils 30 Artikeln verbinde. Das ist, ich habe fast 100 Artikel in meinem Laden, während höchstens 30 von ihnen zur gleichen Zeit angezeigt werden, was nicht sehr effizient zu sein scheint. Mache ich das richtig?
sah ich für reale Welt Open-Source-Beispiele mit einer recht großen API zurück, aber kommen konnte nicht ein bisschen mehr ausgearbeitet als die reale Welt Beispiel oben über Beispiele:/
Dank!
Ok, das habe ich mir auch gedacht, danke für die Bestätigung. Dann haben Sie Reduzierungen für Sammlungen von Künstlern, Alben und Tracks (im Grunde die '/ artists', '/ albums' und'/tracks'). Wie würden Sie "singuläre" Ansichten ('/ artist','/album' und '/ track') behandeln? Das kann ich in keinem Repo sehen. Sollte ich nur drei andere Reduzierstücke kombinieren, um sie zu speichern, oder die Werte in den mehreren Reduzierern speichern, wie z. '[Künstler]'? Danke – Phyks
Persönlich verwende ich einen Reduzierer für jede Komponente/Behälter, wie; /src /Komponenten - Präsentations-Komponenten (keine Logik oder Datenmanipulation) Artists.jsx Artist.jsx AnotherArtistRelatedComponent.jsx /Behälter - Behälterkomponenten Artist.js /Aktionen - Aktionen ArtistActions.js /Reduzierungen - Reduzierungen ArtistsReducers.js Dies ist die fraktale Struktur, die ich Dan Abramov viele Male vorgeschlagen habe. Mit freundlichen Grüßen, –
Hmm ... einige Dinge sind mir nicht klar, sorry. 1) Warum hätten Sie nur ein Container 'Artists.jsx' und nicht zB' Artists.jsx' und 'Artist.jsx'? 2) Ich bekomme Ihre Aktionen und Reduzierungen. Aber dann würde 'Artists.jsx' (der Container) in Ihrem Setup verschiedene Aktionen wie' fetchArtists' und 'fetchArtist' aufrufen, je nachdem welche Komponente später aufgerufen wird? Wie würden Sie dann die Daten im Geschäft speichern? Ein einzelner "Künstlerladen", der mehrere Objekte ("Künstler" -Ansicht) oder ein Array eines einzelnen Objekts ("Künstler" -Ansicht) enthält? Vielen Dank! – Phyks