快速和肮脏:只需使用Redux + react-redux + Redux -persist + AsyncStorage for react-native。
它几乎完美地适合react本机世界,工作就像一个迷人的android和ios。此外,它还有一个坚实的社区,以及大量的信息。
有关工作示例,请参阅Facebook上的F8App。
数据持久性有哪些不同的选项?
对于react native,您可能希望使用redux和redux-persist。它可以使用多个存储引擎。AsyncStorage和redux- persistent - filessystem -storage是RN的选项。
还有其他选项,如Firebase或Realm,但我从未在RN项目中使用过它们。
对于每一个,持久性的限制是什么(即,何时数据不再可用)?例如:关闭应用程序时,重启手机时等。
使用redux + redux-persist,可以定义哪些是持久化的,哪些不是。如果没有持久化,则数据在应用程序运行时存在。当持久化时,数据在应用程序执行(关闭,打开,重启手机等)之间持久化。
AsyncStorage在Android上的默认限制为6MB。可以配置一个更大的限制(在Java代码上)或使用redux- persistent - filessystem -storage作为Android的存储引擎。
对于每一个,在iOS和Android上的实现有区别吗(除了一般设置)?
使用redux + redux-persist + AsyncStorage在android和iOS上的设置完全相同。
离线访问数据的选项比较如何?(或者离线访问通常是如何处理的?)
使用redux,离线访问几乎是自动的,这要归功于它的设计部分(动作创建者和还原器)。
您获取和存储的所有数据都是可用的,您可以轻松地存储额外的数据来指示状态(获取,成功,错误)和获取时间。通常,请求获取不会使旧数据失效,您的组件只是在接收到新数据时进行更新。
反之亦然。你可以存储数据,你正在发送到服务器,仍然悬而未决,并相应处理它。
还有其他需要我考虑的问题吗?
React提倡一种反应式的创建应用的方式,Redux非常适合它。你应该在使用常规Android或iOS应用程序中使用的选项之前尝试一下。此外,你会找到更多关于这些的文档和帮助。