1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
| 1.概念 在React Native中,异步存储(AsyncStorage) 是一个用于存储和读取小型数据(如设置、用户偏好、会话信息等)的简单解决方案。 它基于键值对的形式进行存储,并支持异步操作。
在 React Native 中,之前使用的是 AsyncStorage,但它现在已经被移到独立的包中, 即 @react-native-async-storage/async-storage。 这个库提供了一个简单的 API 来进行数据存储和读取。
2. 使用 2.1 安装 AsyncStorage 要在React Native项目中使用异步存储,需要首先安装 @react-native-async-storage/async-storage 库: npm install @react-native-async-storage/async-storage
2.2 常见的 API 操作 2.2.1 存储数据(setItem):使用 setItem 方法将数据存储到异步存储中。
import AsyncStorage from '@react-native-async-storage/async-storage'; const storeData = async (value) => { try { await AsyncStorage.setItem('key', value); } catch (e) { console.error("Error saving data", e); } }; 2.2.2 读取数据(getItem):使用 getItem 方法从异步存储中获取数据 const getData = async () => { try { const value = await AsyncStorage.getItem('key'); if(value !== null) { console.log(value); } } catch (e) { console.error("Error reading value", e); } }; 2.2.3 删除数据(removeItem):使用 removeItem 方法删除存储的数据 const removeData = async () => { try { await AsyncStorage.removeItem('key'); } catch (e) { console.error("Error removing value", e); } }; 2.2.4 清除所有数据(clear):清空所有的存储数据。 const clearAllData = async () => { try { await AsyncStorage.clear(); } catch (e) { console.error("Error clearing data", e); } }; 2.2.5 多项存储/读取(multiSet, multiGet):可以同时存储或读取多个键值对。 const multiSet = async () => { try { await AsyncStorage.multiSet([['key1', 'value1'], ['key2', 'value2']]); } catch (e) { console.error("Error setting multiple values", e); } };
const multiGet = async () => { try { const values = await AsyncStorage.multiGet(['key1', 'key2']); console.log(values); // [['key1', 'value1'], ['key2', 'value2']] } catch (e) { console.error("Error getting multiple values", e); } };
3. 使用场景 -存储用户偏好设置:如保存语言设置、主题(暗黑/亮白)等。 -会话管理:存储用户的登录信息、身份验证 token 等。 -小型数据缓存:缓存一些简单的应用数据,以便在没有网络连接时使用。
4.注意事项 -容量限制: AsyncStorage 适合存储少量数据(例如:少于 6MB 的数据),不适合存储大量的文件或数据库。
-数据类型: AsyncStorage 存储的数据必须是字符串类型,如果需要存储对象,需要先将对象转换成字符串 (如 JSON.stringify())存储,读取时再进行解析(如 JSON.parse())。
5.总结 React Native实现异步存储通过 @react-native-async-storage/async-storage库提供的API来进行数据的存储、读取和删除操作, 适合用于存储少量数据,如用户设置、会话信息等。它采用异步操作,保证不会阻塞主线程,从而提升应用的性能
|