2

微信小程序本地缓存二次封装

新建wxCache.js

/**
 * 本地缓存
 * @工具测试 https://tool.lu/timestamp/
 * @param key 缓存参数
 * @param value 缓存值
 * @param time 缓存时间(小时为单位,传1,就意味缓存1个小时) 非必传
* */
export default class wxCache {
    constructor() {
      this.now = new Date().getTime();// 获取当前时间
    }
    
    // 获取
    get(key) {
        this.now = new Date().getTime();// 获取当前时间
        let time = wx.getStorageSync(key).time || false;// 获取缓存时间
        if(time) {
            if (parseInt(time) >= this.now ) {
              // console.log('还没过期')
              return wx.getStorageSync(key).value
            }else {
              // console.log('过期啦')
              this.remove(key);// 删除字段info
              return false
            }
        }else {
            // 没有设置时间处理返回
            return wx.getStorageSync(key)
        }
    };
    
    // 添加
    put(key,value,time) {
        let data;
        if(time) {
          let timefrom = parseInt(Number(time)*60*60*1000); // 小时转化毫秒
            data = {
              value: value,
              time: timefrom + this.now
            }
        }else {
          data = value;
        }
        wx.setStorageSync(key, data);
    };

    // 移除
    remove(key) {
        console.log('删除')
        wx.removeStorageSync(key);
    };

    // 清空所有
    clearall() {
      wx.clearStorageSync();
    }

}

app.js 全局导入

import wxCache from './common/wxCache.js'// 导入wxCache.js
App({
  data:{},
  wxCache:new wxCache(),// 全局导入
})

使用

app.wxCache.put('time','123',1); // 设置key为time,value为 '123',时间缓存时间为1小时

app.wxCache.get('time');// 获取key为time的value

hhemin
23 声望1 粉丝

无bug是梦想,年薪百万是理想