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做状态管理 下篇文章见