Skip to content

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