为什么我需要在 Asyncstorage 中使用 redux-persist?

Lou*_*ocq 3 react-native redux expo redux-persist

起初,我的RN 应用程序仅使用AsyncStorage来存储我的用户身份验证参数。

最近,我决定将redux集成到这个应用程序中,这样我就可以拥有全局存储、健壮的代码结构和干净的单元测试。

所以我确实实现了ReduxRedux-thunk。它工作得很好,但我注意到了一些让我感兴趣的事情。当我刷新我的应用程序时,我注意到我的 redux state没有持久化

我丢失了我的身份验证凭据。在生产中,这可能意味着我的用户每次关闭我的应用程序时都必须登录。

所以我不得不redux-persist使用AsyncStorage来实现。

我的问题是:根据定义,当 AsyncStorage 已经存在时,为什么我需要在我的 react-native 应用程序中实现 redux-persist,

一个简单的、未加密的、异步的、持久的、键值存储系统,对应用程序是全局的。

?

谢谢你的解释

Bil*_*een 9

  1. Redux 为您提供了一种在应用程序中传递一些数据(状态)的方法。换句话说,您可以使用一致的数据流(操作、操作创建器和化简器)在应用程序的不同组件之间共享数据。

  2. 该数据(状态)存储在内存中。只要您的应用程序正在运行,它就可以访问。如果应用程序关闭,您就会丢失它。

  3. AsyncStorage 将数据保存到 LocalStorage 中。当应用程序再次启动时,您可以从那里检索保存的数据,以便用户可以访问应用程序关闭之前应用程序所处的任何状态。

  4. Redux 和 AsyncStorage 之间没有依赖关系。并非所有 Redux 管理的数据(状态)都需要由 AsyncStorage 保存。并非所有由 AsyncStorage 保存的数据都需要由 Redux 管理(在保存之前)。

  5. Redux 和 AsyncStorage 是完全不同的 2 种工具,它们具有不同的用途。它们可以一起使用或单独使用。

  6. Redux-persist 是一个工具,它使用 AsyncStorage 来存储 Redux 管理的“状态”(或其一部分)。如果您不需要在应用程序的会话之间保存此“状态”,则可以使用 AsyncStorage 仅保存您需要的内容,例如仅保存用户登录令牌。