axios源码分析笔记

1. 序

经常使用axios, 要知道axios比ajax功能强到什么, 为什么强!
建议读此文: Axios源码深度剖析 - AJAX新王者

2. axios优势

拦截器 interceptors
转换器
http请求: 对于node使用http[s].request ,对于html使用XHR

3. axios笔记

1. 和jquery的不同

jquery会生成多个对象, 而axios一般只会引用时生成一个单例,也可使用create函数个性化生成

精髓:
返回一个fn, 使得fn符合以下情况:
fn instanceof Axios;
fn.static === Axios.prototype.bind(context);
fn.this extend

2. 多级配置

default->method:get->this.default->request config

文章中问什么时候default和this.default不同?
我认为: import的时候相同,如果再调用create函数就不同了。

3. 如何拦截

主要是chain数组实现: [request, default, response] , 外加promise。then来实现

4. 调用

无论直接调用还是get、post调用,最终都是调用Axios.prototype.request函数

5. 取消请求

原理是调用http的abort,并把promise状态设置为reject

6. 超时、跨域

request.withCredentials = true;
axios.defaults.timeout = 3000;

7. 校验规则,数据转化

这些都是在chain的状态上加以实现的。

4. 总结

1. 为什么use可以自己添加拦截器?

use是静态函数
use最终会添加到chain数组中,
并且每次调用都是调用Axios.prototype.request
这样调用时候就有了对应的拦截功能。

2. 如何扩展

default默认配置,有四级联框,可个性化配置。
属性和函数配置: 那可参考**4.1<为什么use可以自己添加拦截器>**了

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值