createQiankunNoCacheFetch
包装 fetch,强制 cache: 'no-cache',避免主站用 qiankun 拉取子应用 index.html 时命中浏览器磁盘缓存、发版后仍加载旧入口。
前置依赖
| 参数名 | 类型 | 说明 |
|---|---|---|
fetchImpl | (input, init?) => Promise<Response> | 运行时 fetch(浏览器中为 window.fetch.bind(window)) |
环境要求
- 支持 Fetch API 的运行时(浏览器 / Node 18+)
函数签名
typescript
function createQiankunNoCacheFetch<TInput>(
fetchImpl: (input: TInput, init?: RequestInit) => Promise<Response>,
): (input: TInput, init?: RequestInit) => Promise<Response>参数
| 参数名 | 类型 | 必填 | 说明 |
|---|---|---|---|
fetchImpl | 见上 | 是 | 原始 fetch |
返回值
| 类型 | 说明 |
|---|---|
同 fetchImpl | 每次请求合并 cache: 'no-cache',仍走 ETag 再验证 |
工作原理
qiankun start({ fetch }) 用该包装函数拉子应用 HTML。no-cache 不是禁止存储,而是每次向源站校验;配合 COS/CDN 的 HTML Cache-Control: no-cache, must-revalidate,发版后刷新即可拿到新入口。
主站用法见 packages/www.zengchaowu.com/app/plugins/qiankun.client.ts。