【微信小程序】如何增加、删除数组缓存

小程序的数组缓存可以用来做购物车,浏览记录等

wx.setStorage() 和 wx.setStorageSync() 的区别

  • setStorage() 为异步存储,不管你缓存成功与否,都会执行下一步
  • setStorageSync() 为同步存储,在缓存成功之后才会执行下一步

添加数组缓存

onLoad: function () {
    // 先获取缓存中的内容
    let array = wx.getStorageSync('item') || []
    // 向数组中追加
    array.push({
      item: 'item',
      item1: 'item1',
    })
    // 重新设置缓存
    wx.setStorage({
      key: 'item',
      data: array,
      success: function (res) {}
    })
  },

执行一次就添加一次缓存,结果如下:
【微信小程序】如何增加、删除数组缓存_第1张图片
完全清除直接使用 wx.removeStorage('key')wx.removeStorageSync('key')

那如何删除数组缓存中的某一项呢

!!!严重警示,不要使用网上说的那个 splice,因为你会发现删除到最后一项的时候没法删完。splice 文档说明:splice() 方法向/从数组中添加/删除项目,然后返回被删除的项目。

//这里是我的索引设置,每点击一个,删除对应索引的缓存数组
<button bindtap="clearCache" wx:for="{{4}}" data-id="{{index}}" wx:key="index">点击button>
clearCache(e) {
    // 获取索引值
    let index = e.currentTarget.dataset.id
    // 先获取缓存中的内容
    let array = wx.getStorageSync('item')
    // 设置一个新的数组 arrays,注意这里带有 s
    let arrays = []
    for (var i = 0; i< array.length; i++) {
      if (i != index) {
        arrays.push(array[i])
      }
    }
    // 重新设置缓存
    wx.setStorage({
      key: 'item',
      data: arrays,
    })
  },

你可能感兴趣的:(微信)