使用axios.create后defaults还是被污染了

来源:9-7 扩展 axios.create 静态接口 - 需求分析+ 静态方法扩展+ demo 实现

Lynnnnnnnn

2020-03-03

axios.defaults.headers.common[‘test’] = 123
const instance = axios.create({ … })

如上代码,我在修改了单例axios的defaults默认配置后,用axios.create生成了一个新的axios实例instance,然后从请求头里看到,instance发起的接口请求头里包含了 test: 123。

这里我不太明白,如果create方法是为了创造一个新的实例的话,那默认配置应该是一个新实例对应一份原始的默认配置,但是这样看来似乎所有的axios实例都共用了一份默认配置defaults。我不知道是不是我需求理解错误了。

请老师指点迷津,谢谢。

写回答

1回答

ustbhuangyi

2020-03-03

因为你先修改了 defaults 这个对象,然后 axios.create 的时候会 merge 你这个修改过的 defaults 对象,所以会影响到你这个 instance

0
1
Lynnnnnnnn
非常感谢!
2020-03-04
共1条回复

下一代前端开发语言 TypeScript从零重构axios

课程从零开始重构功能完整的JS库,是学习造轮子的不二之选!

2629 学习 · 877 问题

查看课程