当前位置: 首页 > 面试题库 >

在Redux应用中向哪里写入localStorage?

邹书
2023-03-14
问题内容

我想将状态树的某些部分持久保存到localStorage中。这样做的合适地点是什么?减速器或动作?


问题答案:

减速器从来都不是执行此操作的合适位置,因为减速器应该是纯净的,没有副作用。

我建议仅在订阅服务器中执行此操作:

store.subscribe(() => {
  // persist your state
})

在创建商店之前,请阅读以下保留的部分:

const persistedState = // ...
const store = createStore(reducer, persistedState)

如果您使用combineReducers()它,则会注意到尚未接收到该状态的reducers将使用其默认state参数值正常启动。这可能非常方便。

建议您对订户进行反跳操作,以免写到localStorage的速度过快,否则会出现性能问题。

最后,您可以创建一个将其封装为替代方案的中间件,但我将从订户入手,因为它是一个更简单的解决方案,并且做得很好。



 类似资料:
  • 问题内容: 我对这个问题进行了一些搜索,但发现了非常模糊的答案。在redux中,我们知道状态存储为对象。但是这种状态实际上存储在哪里?它是否以某种方式保存为文件,以后我们可以访问?我所知道的是,它不会以Cookie格式或浏览器的本地存储方式存储它。 问题答案: Redux中的状态存储在Redux存储中的内存中。 这意味着,如果刷新页面,该状态将消失。 您可以想象该商店看起来像这样: redux中的

  • 问题内容: 我需要在android中使用mapview控件,但似乎无法理解如何运行。是否安装了eclipse?我似乎找不到下载链接。 谢谢 问题答案: 是标准Java发行版的一部分。 在Windows 64位计算机上,通常会在以下位置找到jdk 它用于管理您可以使用jar文件签名的密钥和证书。 如果您提供所需做的更多详细信息,我们可能会给您更具体的答案。

  • 我已经将ViewPager和number of Fragment实现为子级,这里每个子级都覆盖自己的。 在我的应用程序中,导航行为是随机的,不是每次都有顺序。因为页面查看器执行缓存来加载额外的子级,这就是我的问题所在。我不确定何时应该初始化/释放子类成员。 需要你们的建议,在这种情况下使用PageViwer是否更好,或者我应该为每个组件使用传统的活动流。

  • 问题内容: 我正在开发jsf应用程序,并使用hibernate模式作为后端。我想创建会话工厂,并在整个应用程序中关闭它。我正在使用util类创建Session工厂。 在我的DAO类的每种方法中,我都会打开会话工厂并关闭它。因此,在我只能打开/关闭会话工厂一次的应用程序中。提前致谢。 问题答案: 在我的应用程序中在哪里打开和在哪里关闭SessionFactory 您正在使用单例会话工厂对象。因此,您

  • 我正在尝试添加android。jar文件到jetty 9.2.1,因为我在服务中使用android类。我试图把它放在\webapps\project\WEB-INF\lib文件夹中,这导致了500个错误/运行时异常。然后我尝试将其放入\ lib \ ext,它不会触发任何错误,但会使用andoid导入以某种方式停止来自特定类的任何输出。 你能告诉我在哪里包含jar吗?添加到WEB-INF中的其他j

  • 我有25-20个代理将数据发送给几个收集代理,然后这些收集代理必须将数据写入HDFS。 在哪里运行这些收集器代理?在Hadoop集群的Data节点上还是集群外?每种方法的优点/缺点是什么?人们目前是如何运行它们的?