2.0.8 • Published 3 years ago
u-cache-ui v2.0.8
u-cache-ui
- uniapp 的缓存列表组件
一、功能特点
- 主要功能:解决多个接口同时返回数组对象,且需要通过唯一键或者多键组合拼接的情况,使用 u-cache-ui 将只用负责一个接口返回的数组对象直接渲染出来即可,其余的接口返回的数组对象将可以直接通过组件获取到并渲染出来;这里将优先从缓存中读取数据,否则将最小量请求接口;
- 缓存功能:可以对频繁请求的列表数据进行缓存,可以选择使用持久化缓存或者内存缓存;即使使用持久化缓存也不用担心从硬盘中读取速度过慢,因为 u-cache-ui 会在初始化时候对持久化数据进行内存代理访问,也就是说用户将不会直接从硬盘读取数据,而是从内存中读取;
- 日志监控功能:即使把所有列表数据都交给 u-cache-ui 管理,也不用担心数据存储在内存中看不到获取内存被占满;u-cache-ui 提供了很方便查看内存数据功能和实时监控内存情况功能;
- 热点数据功能:对于庞大的列表数据,也不用担心内存问题,u-cache-ui 提供丰富缓存时间配置和完整的数据生命周期,可以保证缓存到内存中的数据都是高频热点数据
- 数据格式的兼容功能:即使后台 api 返回的都是奇奇怪怪的数据,或则各种奇葩的数组对象组合方式,(例如:多对多?或者是通过多个组合 key 合并数据)u-cache-ui 都提供丰富组合配置和自定义数据返回
二、安装和使用使用方法
yarn add u-cache-uiconst cache = [
{
cacheName: "material",
cacheIdName: "materialId",
cacheType: "storage",
readLimitTime: 0,
readLimitNumber: 0,
getData: async materialIdList => {
return await fetch("https://uaoie.top/getMaterialList", {
method: "GET",
body: materialIdList,
});
},
},
];
import UCache from "u-cache-ui";
new UCache(cache);三、详细配置
全部配置
参数 object
| 名称 | 类型 | 是否必填 | 默认值 | 说明 |
|---|---|---|---|---|
| cacheName | string | true | 缓存名称 | |
| cacheIdName | string | array | objcet | true | 缓存 id 名称 | |
| cacheType | "memory" | "storage" | true | 缓存类型 | |
| readLimitTime | number | false | 0 | 存活时长,0 代表不限时长 |
| readLimitNumber | number | false | 0 | 可读取次数,0 代表不限次数 |
| getData | function | true | 调用列表的接口方法,返回 Promise<never[]> |
参数 object.cacheIdName
cacheIdName 类型为 string 表示单个 key 简单合并
cacheIdName 类型为 array 表示多个 key 简单合并
cacheIdName 类型为 object 表示多个 key 复杂合并,参数如下:
| 名称 | 类型 | 是否必选 | 默认值 | 说明 |
|---|---|---|---|---|
| name | string|array | true | 合并的关键字,可以是多个 key | |
| every | boolead | false | false | 是否匹配所有关键字 |
| filter | string|array | false | [] | 需要在 data 中过滤不合并的字段 |
四、api
4.1、cacheLog.getCacheInfo()
可在控制台执行
返回值
| 名称 | 类型 | 说明 |
|---|---|---|
| 缓存名称 | string | |
| 缓存 key 名称 | string | 数据关联 key |
| 缓存类型 | "memory" | "storage" | 内存缓存或者持久化缓存 |
| 存活时长 | number | 读取时长,时间戳, 默认和 0 代表无限时长,内存缓存最长时长为堆内存数据实际存在时长 |
| 可读次数 | number | 读取次数 默认为 0,代表无限次数 |
| 缓存大小 | string | 使用 kb 或者 mb 表示 |
4.2、cacheLog.getCache()
可在控制台执行
参数
string cacheName 缓存名称
五、其他 api
addMemoryCache//添加内存缓存实例对象getMemoryCache//获取内存缓存实例对象addSingleMemoryCache//添加单个内存缓存数据addSingleMemoryCacheList//添加单个内存缓存数据列表getSingleMemoryCache//获取单个内存缓存addStorageCache// 添加硬盘缓存实例对象addSingleStorageCache//添加单个硬盘缓存数据addSingleStorageCacheList//添加单个硬盘缓存数据列表addSingleCache//添加单个缓存实例getSingleCache//获取单个缓存实例