Mpx 的统一网络请求封装,提供拦截器、取消、并发队列、proxy/validator 等能力,对底层平台 request 做适配。
- src/index.js:导出
install/useFetch等,挂到proxyMpx.xfetch与原型$xfetch。 - src/xfetch.js:
XFetch类(请求主类)。 - @types/index.d.ts:对外类型。
- src/xfetch.js:
XFetch实例聚合 interceptors / proxy / validator / queue / cancelToken,提供fetch/get/post/addProxy/addValidator等 API。 - src/request.js:底层请求调用,桥接平台
requestAPI。 - src/interceptorManager.js:请求/响应拦截器链。
- src/queue.js:并发队列(在 QQ 小程序等强限流场景下默认开启,
limit/delay可配)。 - src/proxy.js:URL 代理(按规则改写 url / params)。
- src/validator.js:参数校验。
- src/cancelToken.js:取消令牌。
- src/util.js:通用工具(参数序列化、深合并等)。
- 安装:用户
mpx.use(fetch, options)→ index.jsinstall→ 实例化XFetch→ 注册到mpx.xfetch与this.$xfetch。在 QQ 小程序下默认包一层useQueue。 - 发请求:
this.$xfetch.fetch(config)→ 请求拦截器链 →validator校验 →proxy改写 →queue(如启用) → request.js 调底层wx.request/fetch→ 响应拦截器链 → 返回。 - 取消:调用方持有
cancelToken.source(),通过cancel()触发 → 透传到底层 request 的 abort。
- 拦截器、proxy、validator 都是数组式可插拔;新增能力优先以拦截器实现,避免侵入主流程。
- 平台分发依赖文件后缀(如
request.web.js),由 webpack-plugin resolver 选择。