三大接入方式
不知道选哪个?先看下面三句话,对号入座。
我该用哪个?
| 你的情况 | 用这个 | 一句话说明 |
|---|---|---|
| 我用 axios | Axios 安装模式 | 传一个 axios 实例进去,所有请求自动受保护 |
| 我用 fetch / 小程序 / 自定义 SDK | Wrapper 模式 | 把你的请求函数包一层,调用方式不变 |
| 我已经接入了,想在别处统一管规则 | 纯配置模式 | 不接管请求函数,只配置规则,多处共享 |
三种方式的 rules、defaults、notify、logger 写法完全一致,区别只在"如何接管请求函数"。
三种方式的区别
| Axios 安装模式 | Wrapper 模式 | 纯配置模式 | |
|---|---|---|---|
| 接管什么 | axios 实例 | 任意请求函数 | 不接管请求函数 |
| 业务代码改动 | 零改动 | 调用包装后的函数 | 零改动(需配合前两种) |
| 能否卸载 | 能(uninstall()) | 能(uninstall()) | 不能(本就没接管) |
| 适合场景 | Web + axios | 小程序 / RN / fetch / SDK | 路由守卫 / 应用初始化统一配置 |
选择建议
90% 的 Web 项目用 Axios 安装模式。非 axios 项目用 Wrapper 模式。想在多个入口共享规则时,配合 纯配置模式。
配置写法一致
无论哪种方式,治理配置的写法都一样:
javascript
// 三种方式都这么写 rules / defaults / notify
{
notify: (payload) => Toast.show(payload.message),
rules: [
{ method: 'post', duplicate: true },
{ url: /\/api\/config/, retry: true }
]
}
