反応/還元アプリケーションでパフォーマンスの最適化を実装するプロセスが進行中です。これらの最適化の一部には、再選択の導入が含まれていました。これは、状態から直接導出されたデータに対してうまく機能しました。他の小道具から得られたデータはどうですか?反応小道具から派生データを効率的に計算する
例:
我々は3つの成分Feed
FeedItem
とContact
を(問い合わせは、ユーザーが連絡先情報を表示するための成分である)を有します。
a FeedItem
は、フィード内のアイテムを表すオブジェクトを取得します。フィードアイテムのプロパティの1つは、アクターオブジェクトです。このオブジェクトはユーザーに似ていますが、少し違っています(これはうまくいきますが変更できません)。これは、このアクタのためにContact
をレンダリングする場合、アクタからユーザにプロパティをマップする新しいオブジェクトを作成する必要があることを意味します。浅い等価チェックを使用しているため、すべてのレンダリングで新しいオブジェクトを作成することはパフォーマンスのパターンになります。
例えばコード:
<Contact
user={{
photoUrl: actor.photo.smallPhotoUrl,
Id: actor.id,
Name: actor.name,
}}
</Contact>
これを解決するためのパターンがありますか?再選択はredux状態からの派生データのみをサポートしますが、これは基本的には小道具からのデータです。
わからないが、再選択小道具を選択することができる。https://github.com/reactjs/reselect#accessing-react -props-in-selectors – janhartmann
これは状態と小道具のためのものですが、私は小道具に基づいて派生データを効率的に計算したいだけです – davegri