鍍金池/ 問答/HTML/ 微信小程序如何正確使用storage?

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

問題描述

在項(xiàng)目開發(fā)中很喜歡保存一些用戶選擇的一些數(shù)據(jù),這里就用到了storage本地緩存,下次打開小程序的時(shí)候就能通過storage獲取賦值到data數(shù)據(jù)中使用,但是每次修改保存的時(shí)候,既要修改data中的數(shù)據(jù)又要修改storage中的數(shù)據(jù),這樣感覺很臃腫。請問大佬們使用什么方法處理這種問題的,或許有沒有那種綁定,改變storage的時(shí)候自動改變data中的數(shù)據(jù)。

回答
編輯回答
好難瘦

我是這樣處理的,在app.js中實(shí)現(xiàn)一個方法來處理這種數(shù)據(jù),比如處理登錄信息:

// app.js
App({
    //...
    setupLogin: function(data, cb) {
        if (data) {
            // 如果傳入了數(shù)據(jù)(比如初次登錄),就更新
            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()
        }
    }
})

每次小程序加載的時(shí)候調(diào)用一次setupLogin,將數(shù)據(jù)保存在app.globalData里,這樣用到的時(shí)候獲取就更方便。在這里,我會根據(jù)app.globalData.loginData是否為null來判斷是否需要進(jìn)行登錄操作。

如果還需要處理其他類似的數(shù)據(jù),也可以這樣做。

當(dāng)然,你也可以封裝一個方法,來專門實(shí)現(xiàn)這一連串操作。

2017年11月3日 06:33