gpt4 book ai didi

clojure - 重新构建数据库组织

转载 作者:行者123 更新时间:2023-12-01 05:58:49 27 4
gpt4 key购买 nike

我们的 Re-frame 应用程序数据库是这样组织的(针对这篇文章进行了简化):

{: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 ,避免订阅整个数据库。

最佳答案

用于衡量订阅效果 https://github.com/Day8/re-frame-trace被推荐。

关于clojure - 重新构建数据库组织,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47430232/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com