1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        微信小程序數(shù)據(jù)的生命周期

        共 1827字,需瀏覽 4分鐘

         ·

        2021-07-29 23:43

        轉(zhuǎn)自:微信開放社區(qū)

        作者:kindear

        微信小程序的數(shù)據(jù)存儲分為三種方式,生命周期如下:

        • globalData:存儲短期數(shù)據(jù),引入 app.js 可訪問,徹底關(guān)閉小程序數(shù)據(jù)消失

        • Storage:存儲長期數(shù)據(jù),全局可訪問,移除小程序數(shù)據(jù)消失

        • 后端服務(wù)器:存儲跨設(shè)備的數(shù)據(jù),通過后端授權(quán)后可訪問,只要服務(wù)器不炸數(shù)據(jù)永存

        一、短生命周期數(shù)據(jù)存儲

        以小程序啟動到徹底關(guān)閉為周期的的數(shù)據(jù)建議存儲在 app.js 文件夾中,引用 app.js:

        const app =getApp();

        假設(shè) Value 是在小程序本次生命周期中經(jīng)常使用到的一個數(shù)據(jù),比如說請求 API 的 token、動態(tài)的令牌等。那么就可以把這個值賦值到全局變量中去。實際上并不是只有 app.js 中的 globalData 是全局變量,也可以自己定義數(shù)據(jù)集。

        App({
          HG:{
            token:''
          },
          ...
        })

        對于 app.js 里面的 token 進(jìn)行賦值操作很簡單,只要頁面引用了 app.js。

        app.HG.token = Value;

        這個數(shù)據(jù)在小程序的本次啟動到徹底關(guān)閉的周期中就會一直存在了,還可以根據(jù)需要進(jìn)行修改。Value 也可以是對象。

        二、長生命周期或者隱私數(shù)據(jù)存儲

        這種數(shù)據(jù)的顯著特點是在小程序關(guān)閉再次重啟后依然存在,這種時候可以用本地緩存來解決這種問題。

        本地緩存的生命周期:小程序被開始使用 ——> 小程序被徹底從使用列表中移除

        設(shè)置緩存的方式:

        wx.setStorage({
          key'hgcookie',
          data: {
            xh: that.data.xh,
            pwd: that.data.pwd
          }
        })

        小程序獲取緩存的方式:

        var that = this;
        wx.getStorage({
          key'hgcookie',
          successfunction (res{
            that.setData({
              xh: res.data.xh,
              pwd: res.data.pwd
            });
          },
        })

        比如保存用戶的登陸態(tài)信息,就可以采用這種方式,但處于安全考慮是不能保存用戶的隱私數(shù)據(jù)。同時如果是非時效性的數(shù)據(jù),也可以通過這種方式進(jìn)行存儲。

        三、動態(tài)信息或配置信息存儲

        后端服務(wù)器保存用戶的配置信息,在更換手機時能迅速完成配置同步。

        商家小程序推薦商品修改、內(nèi)容修正、增加活動等,不可能每次都要重寫然后再次讓小程序進(jìn)行審核。

        對此,可以在后端服務(wù)器中保存這個信息。

        以一個小程序的輪播廣告牌為例:

        {
         ad1:'imgurl1',
         ad2:'imgurl2',
         ad3:'imgurl3'
        }

        把這個數(shù)據(jù)存放在后臺服務(wù)器,每一次刷新該頁面都請求一次后臺數(shù)據(jù),對內(nèi)容進(jìn)行修改。

        wx.request({
         url:'XXX',
         data:{},
         success(res){
          that.setData({
           adList:res.data
          })
         }
        })

        可以用類似這種方式,完成對一些數(shù)據(jù)的動態(tài)控制或者是云同步。

        - END -

        ?? 關(guān)注「HelloGitHub」第一時間收到更新??

        瀏覽 115
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        分享
        舉報
        評論
        圖片
        表情
        推薦
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            日韩簧片 | 欧美69hd | 极品美女高潮出白浆 | 深爱五月天激情网 | 人人澡人人添 | 国产三级片视频 | 欧美在线观看黄 | 肥女操屄 | 日韩人妻无码一区二区三区中文 | 黄色中文视频 |