2017-11-22 13 views
4

私たちは再フレームアプリのDBは次のように整理さがあります。再フレームデシベル組織

{:meta {:page/search {:page/component #'...} :page/details {:page/component #'...}} 
:widget/base {:cur-page-id :page/search} 
:page/search {:page/route {:query-params {:q "1"}, ...}, 
:page/details {:page/route {:query-params {:q "2"}}, ...} 

は不変:metaの下にあるすべてのものを考えてみましょう。

baseウィジェットは、[:widget/base :cur-page-id]にサブスクライブし、次に[:meta cur-page-id :page/component]を選択して、現在選択されているページをレンダリングします。 また、ページ自体にも現在のページの:page/routeが必要です。それは(fn [db] (get-in db [cur-page-id :page/route]))に加入することによってこれを得る。これはアンチパターンである可能性があります。なぜなら今はデータベース全体を購読しているからです。

これをリファクタリングすることはできますが、パフォーマンスに何がかかるか最初に知っておくとよいでしょう。これを適切に測定する方法はありますか?

たとえば、 :widget/baseエントリの下にルートを格納します。ここで、ページは:widget/base :routesのみを選択するサブスクリプション経由で独自のルートを検索し、データベース全体のサブスクリプションを避けます。

答えて