私は再選択ライブラリを使用しています。 私は、各セレクタ(stateProps内)に特定のセレクタ(セレクタに接続され、セレクタAとして参照可能)に接続されている多くのコンポーネントを持っています。セレクタAのパラメータ(セレクタもB、C、Dと呼ぶことができます)のいずれかが変更されるたびに、セレクタAは再計算し、接続されたコンポーネントごとに個別に呼び出されます。この計算が集中するので、これは私に多くのパフォーマンスを必要とします。これを避け、一度計算する方法はありますか? ありがとう同じセレクタを使用している複数のコンポーネントが再選択
0
A
答えて
0
再選択ライブラリimplements memoization for the selectors。 createSelector関数で作成されたセレクタは、セレクタへの入力値が変更された場合にのみ再計算されます。それ以外の場合、セレクタは以前のメモ帳の値をコンポーネント間で返します。 reselect documentationから
入力セレクタの値がセレクタへの以前の呼び出しと同じ場合、変換関数を呼び出す代わりに以前に計算された値が返されます。
これは、コンポーネント間で同じセレクタ関数を再利用する必要があります。通常、セレクタは、選択している状態を構築するレデューサー(例:reducers.js)と一緒に作成します。余分なスマート性のためにセレクタを作成して、異なるセレクタにまたがって共有されているサブ状態もメモできるようにする必要があります。
+0
私は使用します複数のコンポーネントにまたがるセレクタ また、私はセレクタの複数のレベルが他のものの上にあるということに言及する価値があります。 だから私はいくつかの入力セレクタがそれにもかかわらず変化していると思っています。入力セレクタを「createSelector」セレクタにすると、その度に最も深いセレクタが入力セレクタとは異なる機能を持つようになる可能性がありますか? –
関連する問題
- 1. 同じセレクタを使用する角度2の複数のコンポーネント
- 2. 再選択セレクタは、私は別のセレクターの引数として再選択セレクタを使用しようとしている
- 3. は、ウィジェットを選択しyii2 - 複数のは、私が同じ形式で複数のyii2選択ウィジェットを使用する必要が同じ形式で
- 4. Zend Select - 複数のバリエーションで同じ選択を使用
- 5. Angularjs:複数の同じオブジェクトを選択してトラックする
- 6. SQL同じテーブルの複数選択
- 7. 複数のほぼ同じフラグメントに同じアダプターを再使用
- 8. Angular2でシングルアプリケーションを使用している同じページ内の複数のコンポーネント
- 9. 同じテーブルの複数のフィールドを選択しない
- 10. 同じテーブルの複数選択の合計について
- 11. 複数の子コンポーネントが同じインスタンスが
- 12. HTML複数選択ボックス、jQueryを使用して複数のアイテムを選択
- 13. 同じ子クラスの複数のセレクタ?
- 14. リレーショナルデータのセレクタを再選択する
- 15. 複数の[属性=値]セレクタの使い方同じ要素のセレクタ?
- 16. 同じ日に複数のエントリーを同じユーザーが選択してください。MySQL
- 17. javascriptを使用してドロップリストの複数のデータから同じオプションを選択したい
- 18. 同じコンポーネントにng-transcludeを複数回使用する
- 19. 同じテーブルの最適化を使用してサブ選択から選択
- 20. プロパティをセレクタとして使用してクラスを選択する -
- 21. CSS:2つの一般的なセレクタを使用して同じ要素を選択する
- 22. 複数のコンポーネントが同じアプリケーションサーバーにデプロイされています
- 23. 異なるセレクタを使用して複数のイベントハンドラを選択して要素を与える
- 24. 同じ名前の複数のオブジェクトを選択する
- 25. jQueryセレクタを使用して前の要素を選択する
- 26. 複数選択リストビューがリストアイテム内の複数のコンポーネントで機能しない
- 27. n番目の子セレクタjqueryを使用して選択する
- 28. JPAネイティブクエリーを使用して同じ名前の複数の列を選択する方法は?
- 29. 同じ機能を選択し、複数回
- 30. 複数のリスト値を選択して同じセルに記録する
あなたはカレーを見るかもしれません。これにより、他のパラメータが変更されていないときにあるレベルのキャッシングを維持できるようになり、関連するパラメータが変更されたときにのみ計算が必要になります(https://medium.com/@kbrainwave/currying-in-javascript-ce6da2d324feを参照)。 – sfletche