# 存储数据和读取数据
### wx.setStorage(OBJECT)
将数据存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个异步接口。
**OBJECT参数说明:**
| 参数 | 类型 | 必填 | 说明 |
| -------- | ------------- | ---- | ------------------------ |
| key | String | 是 | 本地缓存中的指定的 key |
| data | Object/String | 是 | 需要存储的内容 |
| success | Function | 否 | 接口调用成功的回调函数 |
| fail | Function | 否 | 接口调用失败的回调函数 |
| complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
### wx.getStorage(OBJECT)
从本地缓存中异步获取指定 key 对应的内容。
**OBJECT参数说明:**
| 参数 | 类型 | 必填 | 说明 |
| -------- | -------- | ---- | -------------------------------- |
| key | String | 是 | 本地缓存中的指定的 key |
| success | Function | 是 | 接口调用的回调函数,res = {data: key对应的内容} |
| fail | Function | 否 | 接口调用失败的回调函数 |
| complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
**success返回参数说明:**
| 参数 | 类型 | 说明 |
| ---- | ------ | -------- |
| data | String | key对应的内容 |
### 示例
在A页面调用 setStorage 存储一些数据:
```html
<button bindtap="setDatas">设置数据</button>
```
```js
const utils = require('../../libs/utils')
Page({
setDatas () {
wx.setStorage({
key: 'transactionData',
data: {
name: 'qzy',
age: 22
},
success: function(res){
console.log('存储成功')
console.log(res)
},
fail: function() {
console.log('存储失败')
},
complete: function() {
console.log('存储完毕')
}
})
}
})
```
在B页面调用 getStorage 获取刚才存储的数据:
```html
<button bindtap="getDatas">获取数据</button>
```
```js
Page({
getDatas () {
wx.getStorage({
key: 'transactionData',
success: function(res){
console.log('获取成功')
console.log(res)
},
fail: function() {
console.log('获取失败')
},
complete: function() {
console.log('获取完毕')
}
})
}
})
```
:-: ![](http://xiaoyulive.oss-cn-beijing.aliyuncs.com/imgs/weixin/024.png)
## 同步调用接口
小程序支持同步存储和读取数据缓存,用法与异步。
### wx.setStorageSync(KEY,DATA)
将 data 存储在本地缓存中指定的 key 中,会覆盖掉原来该 key 对应的内容,这是一个同步接口。
**参数说明:**
| 参数 | 类型 | 必填 | 说明 |
| ---- | ------------- | ---- | ------------- |
| key | String | 是 | 本地缓存中的指定的 key |
| data | Object/String | 是 | 需要存储的内容 |
**示例代码**
```js
try {
wx.setStorageSync('key', 'value')
} catch (e) {
}
```
### wx.getStorage(OBJECT)
从本地缓存中异步获取指定 key 对应的内容。
**OBJECT参数说明:**
| 参数 | 类型 | 必填 | 说明 |
| -------- | -------- | ---- | -------------------------------- |
| key | String | 是 | 本地缓存中的指定的 key |
| success | Function | 是 | 接口调用的回调函数,res = {data: key对应的内容} |
| fail | Function | 否 | 接口调用失败的回调函数 |
| complete | Function | 否 | 接口调用结束的回调函数(调用成功、失败都会执行) |
**success返回参数说明:**
| 参数 | 类型 | 说明 |
| ---- | ------ | -------- |
| data | String | key对应的内容 |
**示例代码**
```js
try {
var value = wx.getStorageSync('key')
if (value) {
// Do something with return value
}
} catch (e) {
// Do something when catch error
}
```
- 简介
- 第一章 公众号开发
- 使用微信JSSDK
- 接口权限配置
- 分享接口
- 隐藏按钮项
- 微信支付
- 第二章 小程序开发
- 基础知识
- 分包加载
- WXSS样式表
- 配置
- app.json配置
- window
- tabBar
- page.json配置
- 逻辑层
- app.js
- 场景值
- page.js
- 初始化数据
- 生命周期函数
- 页面相关事件处理函数
- 事件处理函数
- 页面实例方法
- 路由
- 文件作用域
- 模块化
- 视图层
- 模板语法
- 列表渲染
- 条件渲染
- 模板
- 事件
- 引用
- WXS语法规范
- WXS数据类型
- WXS控制流程
- WXS基础类库
- 组件
- 视图容器
- view
- scroll-view
- swiper
- movable-view
- cover-view
- 基础组件
- icon
- text
- rich-text
- progress
- 表单组件
- button
- checkbox
- form
- input
- label
- picker
- picker-view
- radio
- slider
- switch
- textarea
- 导航组件
- navigator
- 媒体组件
- audio
- image
- video
- camera
- 地图组件
- map
- 画布组件
- canvas
- 开放能力
- web-view
- 自定义组件
- 组件模版和样式
- Component
- 组件传值
- 组件事件
- Behaviors
- 组件间关系
- 网络请求
- wx.request
- 微信登录
- 获取 openid 和 unionid
- 获取用户信息
- 将 wx.request 封装为 promise
- 上传图片接口封装
- 数据存储
- 存储数据和读取数据
- 获取数据缓存信息
- 移除数据缓存
- 获取用户设置
- openSetting
- getSetting
- 第三章 小游戏开发
- 参考资料