在React Native应用程序中使用Realm与Redux

old*_*cho 24 sqlite realm react-native redux asyncstorage

我即将开发React Native应用程序,并且完全相信使用Redux管理应用程序状态的好处,但是我想通过使用Realm进行持久存储来使应用程序的数据在离线时可用.我想知道Redux将如何与Realm一起玩?

我正在开发的应用程序将通过RESTful API提取大量的JSON数据,然后我想将这些数据保存到本地存储 - Realm似乎是一个很好的选择.然而,我不确定Realm数据库将如何存在于Redux商店中?它必须存在于商店外部吗?在基于Redux的应用程序中使用Realm在某种程度上是矛盾吗?

我已经很好地搜索了一些文章,这些文章描述了使用Realm或其他存储选项(Asyncstorage或SQLite)与Redux的大型数据集,并且可以找到很少的信息.

Jas*_*bas 12

当您只处理处理数据的组件时,redux存储是很好的.商店是维护应用程序状态的好方法.例如,您不需要Realm来存储当前登录状态或指示用户是否已跳过登录的标志.redux商店在这里赢得了比赛.

另一方面,当您必须处理复杂查询或要存储大量数据时,Realm是最好的.拥有Realm的优势在于可以轻松地在您的反应组件以及非反应组件/类中访问数据.Realm为您提供了使用Realm Browser监控数据并在模型之间建立关系的优势.如果你必须进行任何离线同步,Realm也会赢得比赛.

是否必须存在于商店外部 - 是的.

在基于Redux的应用程序中使用Realm在某种程度上是矛盾的 - 这取决于您使用存储的内容.

  • 在我看来,Redux 和 Realm 不应该相互排斥。这只是整理应用程序的不同层的问题。React 和 Redux 主要位于表示层,其中 Redux 存储(即使它被命名为存储)不是也不应该是任何类型的持久性设备。Redux 存储只是为 UI 组件存储不同的变量以进行相应的操作。另一方面,Realm 解决了持久层的问题。应该使用 React 和 Redux 获取数据并显示它们,并根据自己的业务逻辑使用 Realm 离线缓存它们。 (3认同)