2017-04-27 17 views
1

たとえば、私はバックエンドにジョブという名前のエンティティを持っていますが、frontendは "jobStatus = Cancelled"などの異なる検索フィルタでデータを取得するために別のajaxと呼ばれています... 店舗内にjobListを1つだけ保守する必要がありますか?またはリストのカップルを維持する異なるajaxを一致させる? ありがとうございます。react-redux:店舗データを冗長化する必要がありますか?

+0

いいえ、いくつかの例外を除いて。ほとんどの場合、パフォーマンスのために冗長なデータを保存する必要があります。 – Sulthan

答えて

1

あなたのreduxストアをデータベースのように扱う方が良いです。ネストされたリストを正規化し、各エンティティを1回だけ格納し、他のすべての場所でidで参照します。これを行う良い方法は、Normalizrライブラリを使用することです。 Reduxの公式ドキュメントからhttps://github.com/paularmstrong/normalizr

Reduxの店でリレーショナルまたはネストされたデータを管理するための推奨されるアプローチは、それが データベースであるかのようにお店の一部を扱い、ということに保つことです

正規化された形式でデータ

理由:

データの一部がDUPLありますいくつかの場所で使用されている場合は、適切に更新されることを確認するのが難しくなります になります。

ネストされたデータ は、対応する減速ロジックが複数のネストされた又は より複雑でなければならないことを意味します。特に、深くネストされたフィールド を更新しようとすると非常に醜いものになります。

不変のデータ更新が を必要とするので、状態ツリーのすべての祖先は、コピーしても更新、および 新しいオブジェクト参照が深くネストされたデータオブジェクトへの更新を強制する可能性が接続されているUIコンポーネントは、 を再レンダリングするようになりますされます 表示されているデータに が実際に変更されていない場合でも、UIコンポーネントは再レンダリングされません。

参考:http://redux.js.org/docs/recipes/reducers/NormalizingStateShape.html

+0

あなたの答えをありがとう〜私がこのようにすれば、コンテナにセレクタを追加する必要があるため、フィルタ処理を2回行うように見えるが、私はすでにこれをバックエンドで行っている。 –

関連する問題