私は、React + Reduxを使用して、APIと話すWebアプリケーションを構築します。具体例は、https://github.com/reactjs/redux/tree/master/examples/real-worldに示されています。反応+還元における還元剤の良い戦略は?
My APIは、アーティスト、アルバム、トラックのリストを返し、それらのリスト、または個々のアーティスト、アルバム、またはトラックを照会することができます。 (/ album /:id、/ artist /:id、/ tracks /:idを追加して、/ albums、/ artist、/ tracksと考えてください)
APIミドルウェアを実装し、上記の例のようにpaginate
レデューサーを使用して、アルバム、アーティスト、曲検索用のページ番号付きキーストアを取得しました。
ここでは、単一のオブジェクトを取得して表示するための特異な呼び出しを実装したいと考えています。しかし私は自分のレデューサーを扱う正しい方法についてはわかりません。私はちょうどcombineReducers
余分なレデューサーとartist
、album
とtrack
これらの項目を管理し、保存する必要がありますか?
私がレデューサー管理に関連するもう一つの質問は、私の現在のセットアップでは、3個のpaginate
レデューサーを格納しており、それぞれ30個のアイテムが入っています。つまり、店内には100アイテム近くありますが、そのうち30アイテムは同時に表示されますが、効率的ではないようです。私はそれを正しくしていますか?
は、私は後ろの非常に大きなAPIと現実世界のオープンソースの例を探しましたが、もう少し上の現実世界での例よりも精緻例に遭遇しませんでした:/
ありがとう!
私はあまりにも、確認のおかげでそれを考えていた。次に、アーティスト、アルバム、トラックのコレクション(基本的に '/ artist'、'/albums'、 '/ tracks'のビュー)のための縮小を行います。 "単数形"のビュー( '/ artist'、'/album'、 '/ track')はどうやって扱いますか?それは私が決してレポで見ることのできないものです。私はそれらを格納するために3つの他のレデューサーを組み合わせるか、複数のレデューサーに値を格納するだけでよいですか? '[アーティスト]'?ありがとう – Phyks
個人的に、私は各コンポーネント/コンテナのために1つの還元剤を使います。 /SRC /コンポーネント - プレゼンテーションコンポーネント(論理又はデータ操作なし) Artists.jsx Artist.jsx AnotherArtistRelatedComponent.jsx /コンテナ - コンテナコンポーネント Artist.js /アクション - アクション ArtistActions.js /レジューサー - レデューサー ArtistsReducers.js これはダン・アブラモフが何度も提案したフラクタル構造です。 よろしくお願いします。 –
うーん...ごめんなさいが私には分かりません。申し訳ありません。 1)「Artists.jsx」と「Artist.jsx」ではなく、コンテナ「Artists.jsx」が1つしかないのはなぜですか? 2)私はあなたの行動と減量を得る。しかし、あなたの設定では、 'Artists.jsx'(コンテナ)は後で呼び出されるコンポーネントに応じて' fetchArtists'や 'fetchArtist'のような別のアクションを呼び出すでしょうか?次に、データを店舗にどのように格納しますか?複数のアイテム( 'アーティスト'ビュー)または単一のアイテム( 'アーティスト'ビュー)の配列を含む単一の 'アーティスト'ストア?ありがとう! – Phyks