1. 前言
全局共享数据 或者叫页面状态管理?
2. 全局共享数据
- 如果叫全局共享数据的话 其实用
globalData
或者 存储的话也还凑合
3. globalData
- 简单玩下吧
- 存储
// app.js
// 全局的对象
{
globalData: {
userInfo: null,
person:{
name:"yzs",
roomType:"别墅",
students:[
{id:123,age:30}
]
}
}
}
- 访问
const app = getApp()
//打印app 就知道
4. 微信存储
- 需要存储的内容。
- 只支持原生类型、Date、及能够通过
JSON.stringify
序列化的对象。- storage 应只用来进行数据的持久化存储,不应用于运行时的数据传递或全局状态管理。
- 启动过程中过多的同步读写存储,会显著影响启动耗时。
- 将数据存储在本地缓存中指定的 key 中。会覆盖掉原来该 key 对应的内容。
- 除非用户主动删除或因存储空间原因被系统清理,否则数据都一直可用。
- 单个 key 允许存储的最大数据长度为 1MB,所有数据存储上限为 10MB
5. 同步
同步存储
wx.setStorage({
key: "web111",
data: {
name: "web-yzs",
roomType:"别墅",
content: "同步存储",
hobby: ["羽毛球", '爬山']
}
})
同步读取
wx.getStorage({
key: "web111",
success: res => {
console.log("获取:", res);
this.setData({
result: res.data
})
}
})
6. 异步
异步存储
try {
wx.setStorageSync('sync', ['数组异步','sync代表异步'], )
} catch (error) {
console.log("存储失败:", error);
}
异步读取
try {
var value = wx.getStorageSync('sync')
console.log("异步读取:",value);
this.setData({
resultSync: value
})
} catch (error) {
console.log("读取失败:", error);
}
7. 后记
但是叫状态管理 有点不太合适,嘿嘿😋
用 mobx做状态管理 下篇文章见
补上mobox 文章链接
网友评论