npm i @react-native-community/async-storage
链接组件
React Native 0.60+ 版本会自动链接。
但之前的版本则需要我们手动链接
react-native link @react-native-community/async-storage
如果你从低版本升级到 0.60+ 版本,反而要删除链接,命令如下
react-native unlink @react-native-community/async-storage
引入组件
import AsyncStorage from ‘@react-native-community/async-storage’;
对外提供的方法
| 方法 | 说明 |
| — | — |
| getItem() | 根据给定的 key 来读取数据 |
| setItem() | 将一个键值对添加到系统中,如果已经存在 key 则覆盖 |
| removeItem() | 根据给定的 key 删除指定的键值对 |
| getAllKeys() | 返回数据库中所有的 键 |
| multiGet() | 根据给定的 key 列表获取多个键值对 |
| multiSet() | 将多个键值对存储到系统中 |
| multiRemove() | 根据多个 key 删除多个键值对 |
| clear() | 清空整个数据库系统 |
每一个接口的详细信息,可以 官方 API 文档
使用示例
存储数据
storeData = async () => {
try {
await AsyncStorage.setItem(‘@storage_Key’, ‘stored value’)
} catch (e) {
// 保存失败
}
}
读取数据
getData = async () => {
try {
const value = await AsyncStorage.getItem(‘@storage_Key’)
if(value !== null) {
// 之前存储的数据
}
} catch(e) {
// 读取数据失败
}
}
最佳实战
-
数据可能不存在,推荐在
constructor()
构造函数中先初始化一个默认值 -
推荐把读取数据的逻辑放到
componentDidMount()
中。
下面的代码演示了如何在存储数据组件 AsyncStorage 中存储和读取数据。
App.js
import React, { Component } from ‘react’
import { Text, View, Alert,TextInput, StyleSheet,TouchableHighlight } from ‘react-native’
import AsyncStorage from ‘@react-native-community/async-storage’;
export default class App extends Component {
state = {
‘name’: ‘你好 www.twle.cn’,
‘inputText’:‘你好,简单教程’,
}
async readName() {
try {
const value = await AsyncStorage.getItem(‘name’)
if(value !== null) {
this.setState({ ‘name’: value })
}
Alert.alert(“读取数据成功”)
} catch(e) {
console.log(e);
Alert.alert(“读取数据失败!”)
}
}
setName = () => {
AsyncStorage.setItem(‘name’, this.state.inputText);
Alert.alert(“保存成功!”)
}
render() {
return (
<TextInput
style = {styles.textInput}
autoCapitalize = ‘none’
value={this.state.inputText} />
<View style={{flexDirection:‘row’}}>
<TouchableHighlight style={[styles.button,{backgroundColor:‘blue’}]} onPress={this.readName.bind(this)}>
)
}
}
const styles = StyleSheet.create ({
container: {
margin:10
},
textInput: {
margin: 5,
height: 44,
width:‘100%’,
borderWidth: 1,
borderColor: ‘#dddddd’
},
button: {
flex:1,
height:44,
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
![](https://i-blog.csdnimg.cn/blog_migrate/b3c97e8010da59dd6a2cf616b38ee7bb.jpeg)
最后
你要问前端开发难不难,我就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难』,对于不熟悉某领域技术的人来说,因为不了解所以产生神秘感,神秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。
我特地针对初学者整理一套前端学习资料分享给大家,戳这里即可领取
.com/2024/03/13/H4lCoPEF.jpg" />
最后
你要问前端开发难不难,我就得说计算机领域里常说的一句话,这句话就是『难的不会,会的不难』,对于不熟悉某领域技术的人来说,因为不了解所以产生神秘感,神秘感就会让人感觉很难,也就是『难的不会』;当学会这项技术之后,知道什么什么技术能做到什么做不到,只是做起来花多少时间的问题而已,没啥难的,所以就是『会的不难』。
我特地针对初学者整理一套前端学习资料分享给大家,戳这里即可领取
[外链图片转存中…(img-9m7ig4E6-1713375455631)]