在 React Native 移动应用程序中保存数据

一则或许对你有用的小广告

欢迎加入小哈的星球 ,你将获得:专属的项目实战 / 1v1 提问 / Java 学习路线 / 学习打卡 / 每月赠书 / 社群讨论

  • 新项目:《从零手撸:仿小红书(微服务架构)》 正在持续爆肝中,基于 Spring Cloud Alibaba + Spring Boot 3.x + JDK 17...点击查看项目介绍 ;
  • 《从零手撸:前后端分离博客项目(全栈开发)》 2 期已完结,演示链接: http://116.62.199.48/ ;

截止目前, 星球 内专栏累计输出 63w+ 字,讲解图 2808+ 张,还在持续爆肝中.. 后续还会上新更多项目,目标是将 Java 领域典型的项目都整一波,如秒杀系统, 在线商城, IM 即时通讯,权限管理,Spring Cloud Alibaba 微服务等等,已有 2200+ 小伙伴加入学习 ,欢迎点击围观

所以你现在像我一样一直在摆弄 React Native 。如果您像我一样,那么您已经准备好在您的移动应用程序中查看保存和加载数据。

现在我之前已经演示过 使用 Ionic Framework 保存数据 ,所以我要分享的目标将非常相似。我们将专注于 React Native 的 AsyncStorage 类来完成我们需要的。


这里有一点免责声明。在撰写本文时,React Native 几乎只适用于 iOS,因此您需要一台 Mac 才能继续本文中的内容。

有了这个,继续打开你的终端并执行以下命令来启动一个新的 React Native 项目:


 react-native init ReactProject


我们不会在本教程中使用任何外部组件,所以现在我们已经准备好开始编码了。

根据 React Native 文档 ,持久化数据的推荐方法是通过 AsyncStorage 类。如果您熟悉 HTML5 本地存储,那么您会发现两者的功能非常相似。

AsyncStorage 使用键值对来保存数据,你可以这样做:


 react-native init ReactProject


如果要获取保存的数据,可以根据键值进行查找。它是一个异步操作,如下所示:


 react-native init ReactProject


getItem 方法返回一个承诺,因为它当然是异步的。

考虑到所有这些,打开项目的 index.ios.js 文件并包含以下代码:


 react-native init ReactProject


让我们分解一下上面的代码在做什么。


 react-native init ReactProject


当应用程序加载时,将调用 componentDidMount 函数。我们将加载保存的任何数据并在完成时设置状态。


 react-native init ReactProject


上面呈现的项目用于显示保存的内容和保存新的用户输入数据。当用户输入文本时,调用 saveData 函数保存用户提供给我们的所有内容。

最后我们有 saveData 功能:


 react-native init ReactProject


上面的函数会将输入保存到存储中,然后立即设置状态,以便在屏幕上显示。我不会复习包含的样式代码,因为它不会推进本文的目的。

继续尝试吧。保存一些数据,退出应用程序,然后重新打开。你的数据还在吗?

结论

虽然您可以使用 HTML5 本地存储,但 Facebook 通过 AsyncStorage 类创建了一种更优化的方法来在 React Native 中存储数据。

可以在下面看到本文的视频版本。



相关文章