
只要页面要跟服务器打交道,就绕不开网络请求这件事——登录要发请求、列表要拉数据、表单要提交、消息要轮询。浏览器原生的 fetch 虽然能用,但超时控制、失败重试、统一带上登录凭证、统一处理错误提示,这些公共逻辑都得自己封装一遍,写得糙一点,线上就容易出现转圈不停、错误静默吞掉的问题。这次整理了 4 款开源免费、可商用的前端请求库,把这层公共逻辑一次配好,业务代码只管拿数据。
四款库分别适合谁
Axios 是最流行的一款,浏览器和 Node 都能跑,自动把返回的 JSON 转成对象,拦截器能统一加请求头和做错误处理,还支持超时、取消请求、并发请求和上传下载进度,生态成熟,不确定选什么用它最稳。SuperAgent 的写法是链式调用,读起来接近自然语言,支持进度事件和 multipart 上传,适合习惯链式风格的团队。Wretch 基于原生 fetch 做了一层轻封装,体积小、自带错误处理和 JSON 解析,还提供重试、防抖、限流等中间件。Ky 更现代,API 简洁,内置重试、超时、请求前缀和钩子,但它是 ES Module 格式,得用模块方式引入。
为什么建议别自己封装
很多人觉得接口就那几个,自己写个函数包一下就行,真正的麻烦其实都在异常场景。请求超时了要不要重试、重试几次、并发请求怎么取消、登录过期了怎么统一跳转,这些逻辑如果每个项目重写一遍,很容易漏掉某一条。成熟的请求库把这些场景都考虑过了,拦截器一挂,全站请求的处理逻辑就是一处配置,后面要改也集中,不用满项目找散落的请求代码。
包内容和用法
压缩包里按库名分成了四个目录,每个目录都放了压缩版和带注释的非压缩版两种文件,正式项目引 min 版,调试的时候看非压缩版。Axios、SuperAgent、Wretch 用 script 标签直接引入就能用,不依赖任何框架;Ky 需要用模块方式引入。每个目录都附带了说明文档和许可文件,写了基础用法和常用参数,拿到手照着改就行,不用再到处翻文档。
请求库属于那种平时不显眼、一到上线就显重要的基础工具,选一个成熟的收进工具箱,能省掉不少重复封装和线上排查的时间。这四款加起来不过几百 KB,按需引入对页面加载几乎没有负担。全部是 MIT 协议,可以免费商用、修改和再分发,保留各自的许可文件即可。后面还会继续整理前端开发常用的组件和工具合集,需要的可以先收藏。
























暂无评论内容