异步存储与状态/ Redux

时间:2020-05-15 13:57:33

标签: react-native redux asyncstorage launchdarkly

我们使用Launch Darkly(LD)运行功能标志。我们当前的过程是对LD进行服务调用,取回具有针对该特定用户量身定制的功能标志的json,并使用redux将其存储在状态中。为了在整个应用程序中利用功能标记,我们在任何给定的mapStateToProps中创建“选择器”,以便在需要时从该特定状态提取信息:

const exampleFlag = state => state.featureFlagsLocation.specificFeatureFlag;

我们当前正在从LD过渡,并添加Rollout.io的功能标志Saas。但是,推出不会返回为登录用户量身定制的json对象,而是发送了功能标记的整个配置,并将其存储在Async Storage中。然后,我们使用“发布”帮助器功能将用户信息与异步存储中保存的配置进行比较

const exampleFlag = RolloutFeatureFlagsObj.specificFeatureFlag.getValue({Username: 'dummyUser'})

此设置为我们提供了两种选择。

  1. 我们可以使用发布助手功能,并在登录时提取所有功能标志,并使用redux将它们存储到状态(就像我们对LD所做的那样),然后像使用选择器一样访问它们。或

  2. 由于辅助功能,我们可以从我们的应用程序中完全删除状态用法(redux / reducers / selectors)。Rollout在整个应用程序中为我们提供了基本按需提取featureFlag值的功能。但是,这需要每次都从异步存储而不是从状态中拉出。

问题:

能够完全删除redux是很诱人的,但是在更改方面是否会对性能造成重大影响?更笼统地说,从状态中提取数据与从异步存储中获取数据之间在性能上有很大的区别吗?

注意:如果这属于另一个stackExchange org,我深表歉意。如果是这样,请直接把我指引在那里。

0 个答案:

没有答案
相关问题