[TOC] #### 前言 --- 在 uniapp 中,封装一个缓存工具类可以帮助更好的管理应用的数据存储,可以放到任意项目直接使用 本文基于 `uni.setStorageSync()` 封装一个简单的缓存工具类,本地存储数据,拿来即用,非常方便 #### 工具类 --- 首先明确下规范,工具类统一存放到项目根目录下的 `utils` 目录中,缓存工具类命名为 `cache.js` ```javascript export default { set(key, value, expire) { let data = { value, expire: expire ? (this.time() + expire) : "" } if (typeof data === 'object') { data = JSON.stringify(data); } try { uni.setStorageSync(key, data) } catch (e) { return false; } }, get(key) { try { const data = uni.getStorageSync(key) const { value, expire } = JSON.parse(data) if (expire && expire < this.time()) { uni.removeStorageSync(key) return false; } else { return value } } catch (e) { return false; } }, time() { return Math.round(new Date() / 1000); }, remove(key) { if (key) uni.removeStorageSync(key) } } ``` 当我们存储数据时,需要设置缓存数据的 key,为了方便管理,可以将其定义在配置文件中 配置文件统一存放到项目根目录下的 `config` 目录中,缓存数据 key 的配置文件定义为 `cachekey.js` ```javascript module.exports = { TOKEN: 'TOKEN', USER_INFO: 'USER_INFO', } ``` 使用示例 ```javascript import cache from '@/utils/cache'; import { TOKEN } from '@/config/cachekey'; // 存储数据(有效期 30天) cache.set(TOKEN, 'xxxxx', 60 * 60 * 24 * 30) // 获取数据 cache.get(TOKEN) ```