微信小程序如何正确使用storage?

问题描述

在项目开发中很喜欢保存一些用户选择的一些数据,这里就用到了storage本地缓存,下次打开小程序的时候就能通过storage获取赋值到data数据中使用,但是每次修改保存的时候,既要修改data中的数据又要修改storage中的数据,这样感觉很臃肿。请问大佬们使用什么方法处理这种问题的,或许有没有那种绑定,改变storage的时候自动改变data中的数据。

阅读 12.1k
1 个回答

我是这样处理的,在app.js中实现一个方法来处理这种数据,比如处理登录信息:

// app.js
App({
    //...
    setupLogin: function(data, cb) {
        if (data) {
            // 如果传入了数据(比如初次登录),就更新
            wx.setStorageSync('loginData', data)
        } else {
            // 如果没有就从本地storage里取登录信息
            data = wx.getStorageSync('loginData')
        }

        if (data && data != [] && data != "") {
            this.globalData.loginData = data
        } else {
            this.globalData.loginData = null
        }

        if (cb) {
            cb()
        }
    }
})

每次小程序加载的时候调用一次setupLogin,将数据保存在app.globalData里,这样用到的时候获取就更方便。在这里,我会根据app.globalData.loginData是否为null来判断是否需要进行登录操作。

如果还需要处理其他类似的数据,也可以这样做。

当然,你也可以封装一个方法,来专门实现这一连串操作。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题