收藏
回答

请教一下官方的开发朋友,小程序里面把值存到app上好还是存本地缓存好呢?

由于没找到相关的文档或者资料,就只有来这里发帖求助了。


问题是这么产生的,我需要实现一个换肤的功能,皮肤的配置是接口返回的,我会在生命周期:onLaunch的时候把参数存起来。

从考虑性能和方便性还有就是容错能力来说,我是把值放到app上面,还是放到本地缓存里面呢?

另外扩展一下这个问题:就是什么情况下用this.setData ? 什么时候用 wx.setStorage


代码实现:

var app=getApp();
    Page({
        data:{
            SkinStyle:"normal" //这里其实可以不要
        },
        bgBtn:function(){
            if (this.data.SkinStyle==="normal"){
                app.globalData.skin = "dark"; //设置app()中皮肤的类型
                this.setData({
                    SkinStyle: app.globalData.skin  //设置SkinStyle的值
                })
                wx.setStorage({ //设置storage
                    key: 'skins',
                    data: app.globalData.skin,
                })
            }else{
                app.globalData.skin="normal";
                this.setData({
                    SkinStyle: "normal"
                })
                wx.setStorage({
                    key: 'skins',
                    data: app.globalData.skin,
                })
            }
        }
    })




问题是这么产生的,我需要实现一个换肤的功能,皮肤的配置是接口返回的,我需要在生命周期:onLaunch的时候把参数存起来。
回答关注问题邀请回答
收藏

3 个回答

  • Admin ²º²⁴
    Admin ²º²⁴
    2020-04-16

    app是内存,退出小程序就没了

    storage是当前设备的存储

    如果你要持久化用户选择的皮肤,那应该保存到app的同时也要保存到storage,下次小程序启动时直接从storage里读取用户皮肤设置(如果已经保存到后端接口的话就不用了)

    2020-04-16
    有用 2
    回复 1
    • 你是人间四月天
      你是人间四月天
      2020-04-16
      好的,谢谢回复!
      目前没有接口做用户皮肤存接口的操作,存本地确实可以从资源请求这块来说有一定的优势,能节约服务器的一个接口调用。
      2020-04-16
      回复
  • 唏嘘
    唏嘘
    2020-04-16
    什么时候用 this.setData ? 什么时候用 wx.setStorage
    
    this.setData:需要页面能够实时刷新,就是数据获取到页面立马就展现出来,如果不需要展示,需要留到后期运算,可以选择this.data.xxx=111;
     wx.setStorage  适合本地存储数据更新   比如默写用户设置  购物车等   这样下次打开就不用频繁从接口更新
    

    --↓↓👍点赞是回答的动力哦

    2020-04-16
    有用 1
    回复 2
    • 你是人间四月天
      你是人间四月天
      2020-04-16
      好的,谢谢回复!
      2020-04-16
      回复
    • 唏嘘
      唏嘘
      2020-04-16回复你是人间四月天
      客气了 ~  还望点个赞哦~

      --↓↓👍点赞是回答的动力哦

      2020-04-16
      回复
  • 哄哄
    哄哄
    2020-04-16

    app是一个变量,在内存中,存取速度快,程序关闭值就不存在了

    缓存是一个文件,在硬盘中,存取速度慢,程序关闭后值还在

    应该用哪个自己想想

    2020-04-16
    有用 1
    回复 1
    • 你是人间四月天
      你是人间四月天
      2020-04-16
      好的,谢谢回复。感觉需要放app里面比较满足需求了。
      2020-04-16
      回复
登录 后发表内容
问题标签