mpvue解决同一页面组件反复进入数据被覆盖的问题

问题:最近在开发小程序时候,遇到一个多层级的目录需要反复跳转到同一个组件,当同一个页面组件被反复进入时由于在mpvue中他们用的是一套vm,所以后面渲染的数据就会将前面页面的数据覆盖,这样在我们回退时就不会有以前页面的记录,一直会是最后一张页面的记录
解决:
1、只需要在跳转同一个页面组件的时候把上一个页面组件的数据缓存起来
let pdList;
if(wx.getStorageSync('pdList') && JSON.parse(wx.getStorageSync('pdList')).length){
            pdList = JSON.parse(wx.getStorageSync('pdList'));
            pdList.push({ ...this.$data });
          }else{
            pdList = [{ ...this.$data }];
          }
          wx.setStorageSync('pdList', JSON.stringify(pdList));
2、再点击返回箭头的时候去获取之前存好的数据,然后覆盖$data
onUnload: function () {
      let pdList =  JSON.parse(wx.getStorageSync('pdList'))
      if (pdList.length > 0) {
        Object.assign(this.$data, pdList[pdList.length - 1])
        pdList.splice(pdList.length - 1, 1)
        wx.setStorageSync('pdList', JSON.stringify(pdList));
      }
    }

到此,该问题解决。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值