ReactNative——数据存储AsyncStorage

首先看看官网对AsyncStorage的定义:

AsyncStorage是一个简单的、异步的、持久化的Key-Value存储系统,它对于App来说是全局性的。它用来代替LocalStorage。


LocalStorage是什么呢?

在HTML5中,新加入了一个localStorage特性,这个特性主要是用来作为本地存储来使用的,解决了cookie存储空间不足的问题

目前React项目中也是使用LocalStorage


我们注意到一个非常关键的词:异步。这也是我在项目中遇到的问题。

当我们在ComponentWillMount()中使用使用AsyncStorage获取本地数据的时候,由于是一个异步的过程导致界面加载的时候,某些数据还未获取到,但是已经被界面用到了。

我的错误的例子:

这里写代码片

简单的方法

注意:`AsyncStorage“只能存储字符串,需要把对象转换为字符串才行

save() {
        var object = {
  username: 'li'
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
React Native 中,可以使用 Crypto 模块来进行数据加密。具体步骤如下: 1. 安装 Crypto 模块 在终端中运行以下命令: ``` npm install crypto-js ``` 2. 引入 Crypto 模块 在需要使用加密的文件中,引入 Crypto 模块: ```javascript import CryptoJS from 'crypto-js'; ``` 3. 进行数据加密 使用 CryptoJS.AES 对象进行数据加密。例如,使用 AES-256-CBC 加密算法对数据进行加密: ```javascript const key = CryptoJS.enc.Utf8.parse('1234567890123456'); const iv = CryptoJS.enc.Utf8.parse('1234567890123456'); const data = '要加密的数据'; const encrypted = CryptoJS.AES.encrypt(data, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); const encryptedData = encrypted.toString(); ``` 其中,key 和 iv 分别为加密密钥和初始向量,data 是要加密的数据。加密后的数据通过 encrypted.toString() 方法获取。 4. 进行数据解密 使用 CryptoJS.AES 对象进行数据解密。例如,使用 AES-256-CBC 加密算法对数据进行解密: ```javascript const key = CryptoJS.enc.Utf8.parse('1234567890123456'); const iv = CryptoJS.enc.Utf8.parse('1234567890123456'); const encryptedData = '加密后的数据'; const decrypted = CryptoJS.AES.decrypt(encryptedData, key, { iv: iv, mode: CryptoJS.mode.CBC, padding: CryptoJS.pad.Pkcs7 }); const decryptedData = decrypted.toString(CryptoJS.enc.Utf8); ``` 其中,key 和 iv 分别为加密密钥和初始向量,encryptedData 是加密后的数据。解密后的数据通过 decrypted.toString(CryptoJS.enc.Utf8) 方法获取。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值