跳到主要内容
版本:4.x

CacheManager

方法

参数类型说明
modekeyof Mode当前缓存模式
originstring全局 origin
maxAgenumber全局缓存有效时间
statekeyof State当前缓存管理器状态

addRule

添加规则

支持情况:

参考文档

(option: AddRuleOption) => string
参数类型
optionAddRuleOption

示例代码

const ruleId = cacheManager.addRule({
id: 'haha-rule',
method: 'GET',
url: '/haha',
maxAge: 123455,
dataSchema: [
// data 字段的匹配,默认为空,表示不匹配
// 类型可以是:string、number、boolean、null、object、any(表示任意类型均可),以及这些类型的数组表示方式
{name: 'aaa', schema: {type: 'string'}}, // 类型为 string
{name: 'bbb', schema: [{type: 'number'}, {type: 'string'}]}, // 类型为 number, string
{name: 'ccc', schema: {type: 'string', value: 'abc'}}, // 值为 abc
{name: 'ddd', schema: {type: 'string', value: /(abc|cba)/ig}}, // 值符合该正则匹配,如果该值不是字符串类型,则会被尝试转成字符串后再进行比较
{name: 'ddd', schema: {type: 'string', value: val => val === '123'}}, // 传入函数来校验值
{name: 'eee', schema: {type: 'object', value: [{ // 类型为对象,则通过嵌套的方式来逐层校验
name: 'aaa', schema: {type: 'string'},
// ...
// 嵌套 dataSchema,同上面的方式一样来匹配嵌套的对象
}]}},
{name: 'fff', schema: {type: 'string[]'}}, // 类型为 string 数组
{name: 'ggg', schema: {type: 'any'}}, // 类型为任意类型
{name: 'hhh', schema: {type: 'any[]'}}, // 类型为任意类型的数组
]
})

addRules

批量添加规则

支持情况:

参考文档

(option: AddRulesOption) => string[]
参数类型
optionAddRulesOption

clearCaches

清空所有缓存

支持情况:

参考文档

() => void

clearRules

清空所有规则,同时会删除对应规则下所有缓存

支持情况:

参考文档

() => void

deleteCache

删除缓存

支持情况:

参考文档

(id: string) => void
参数类型说明
idstring缓存 id

deleteCaches

批量删除缓存

支持情况:

参考文档

(ids: string[]) => void
参数类型说明
idsstring[]缓存 id 列表

deleteRule

删除规则,同时会删除对应规则下所有缓存

支持情况:

参考文档

(id: string) => void
参数类型说明
idstring规则 id

deleteRules

批量删除规则,同时会删除对应规则下所有缓存

支持情况:

参考文档

(ids: string[]) => void
参数类型说明
idsstring[]规则 id 列表

match

匹配命中的缓存规则,一般需要和 request 事件搭配使用

支持情况:

参考文档

(option: MatchOption) => MatchResult
参数类型
optionMatchOption

off

取消事件监听

支持情况:

参考文档

(eventName: string, handler: TaroGeneral.EventCallback) => void
参数类型说明
eventNamestring事件名称
handlerTaroGeneral.EventCallback事件监听函数

on

监听事件

支持情况:

参考文档

(eventName: keyof OnEventName, handler: TaroGeneral.EventCallback) => void
参数类型说明
eventNamekeyof OnEventName事件名称
handlerTaroGeneral.EventCallback事件监听函数

start

开启缓存,仅在 mode 为 none 时生效,调用后缓存管理器的 state 会置为 1

支持情况:

参考文档

() => void

stop

关闭缓存,仅在 mode 为 none 时生效,调用后缓存管理器的 state 会置为 0

支持情况:

参考文档

() => void

参数

Mode

参数说明
weakNetwork默认值,弱网/离线使用缓存返回
always总是使用缓存返回
none不开启,后续可手动开启/停止使用缓存返回

State

参数说明
0不使用缓存返回
1使用缓存返回
2未知

DataSchema

参数类型必填说明
typestring需要匹配的 data 对象的参数类型
string、number、boolean、null、object、any(表示任意类型),
同时支持数组模式(数组模式则在类型后面加 [],如 string[] 表示字符串数组)
valuestring or Function or RegExp or DataRule[]需要匹配的 data 对象的参数值
当 type 为基本类型时,可以用 string/regexp 来匹配固定的值,
也可以通过 function 来确定值是否匹配,
如果传入的 type 是 object,那么表示需要嵌套匹配值是否正确,可以传入 Array

DataRule

参数类型说明
namestring需要匹配的参数名
schemaDataSchema or DataSchema[]

RuleObject

参数类型默认值说明
idstring规则 id,如果不填则会由基础库生成
methodstring请求方法,可选值 GET/POST/PATCH/PUT/DELETE,如果为空则表示前面提到的所有方法都能被匹配到
urlanyuri 匹配规则,可参考规则字符串写法和正则写法
maxAgenumber7 * 24 * 60 * 60 * 1000缓存有效时间,单位为 ms,不填则默认取缓存管理器全局的缓存有效时间
dataSchemaDataRule[]匹配请求参数

Rule

AddRuleOption

参数类型说明
ruleRule规则

AddRulesOption

参数类型说明
rulesRule[]规则列表

MatchOption

参数说明
evtrequest 事件对象

MatchResult

参数类型说明
ruleIdstring命中的规则id
cacheIdstring缓存id
dataany缓存内容,会带有 fromCache 标记,方便开发者区分内容是否来自缓存
createTimenumber缓存创建时间
maxAgenumber缓存有效时间

OnEventName

参数说明
request发生 wx.request 请求,只在缓存管理器开启阶段会触发
enterWeakNetwork进入弱网/离线状态
exitWeakNetwork离开弱网/离线状态

API 支持度

API微信小程序H5React NativeHarmony
CacheManager.addRule✔️
CacheManager.addRules✔️
CacheManager.clearCaches✔️
CacheManager.clearRules✔️
CacheManager.deleteCache✔️
CacheManager.deleteCaches✔️
CacheManager.deleteRule✔️
CacheManager.deleteRules✔️
CacheManager.match✔️
CacheManager.off✔️
CacheManager.on✔️
CacheManager.start✔️
CacheManager.stop✔️