Redux:将衍生数据保存在商店中总是不好的做法吗?

时间:2017-02-20 09:55:13

标签: redux containers store

我知道在Redux中使用选择器,并使用它们。但是我有一个案例,我认为将新过滤的数据存储在商店中会更有意义。这是我的例子:

我有一个显示大量项目的应用。有一个“全局过滤器”选项,只显示这些项目的某个子集。

问题是,这个过滤器是全局的。它会跨多个页面和组件更改此项目列表(例如,在表格中,在下拉菜单中)。设置过滤器后,就整个应用程序而言,当前子集是唯一存在的项目列表。

我可以在任何地方使用选择器,但感觉就像我的商店中有一个'filteredItems'部分会更健壮。这样做的缺点是什么?

2 个答案:

答案 0 :(得分:3)

由您来决定您的应用中的状态以及它应该存在的位置。是的,常见的建议是尽量保持存储状态最小化并使用选择器从中获取扩展值,但使用reducers创建保存在状态中的过滤值没有任何问题。你的情况听起来像是一个非常合理的用例。

答案 1 :(得分:2)

我使用选择器(reselect),通过缓存派生数据和其他东西以提高性能,它更进一步。我一直使用它。

为什么呢?

为了保持我的组件尽可能小和可重复使用,我注意到在这段时间之后,你开始用更多的通用程序来编写组件。方式,并使用选择器作为插件适配器的种类,以塑造多种类型的数据,以适应组件。

当?

使用重新选择时的一个主要问题是设置部分,无聊......并且不是没有努力。但是当你学习并应用重新选择模式时,阅读和维护一个大应用程序将变得更加简单

因此,如果你有很多计算要做和多样化的派生数据,你应该付出代价(时间,努力)并进行设置,但如果你的派生数据很小,你就不应该为此烦恼。 / p>

我的两分钱