当前位置: 代码迷 >> 综合 >> 前端交互三(axios库)
  详细解决方案

前端交互三(axios库)

热度:44   发布时间:2023-10-01 00:40:19.0

目录

1.axios的主要函数

2.针对url的一些处理

3.post参数及请求头的处理

4.返还对象的包装

5.工厂模式函数和混入模式

5.1axios的使用方式

5.1.1方式一:axios({})

5.1.2方式二:axios.get({})

5.1.3方式三:axios.create({})

5.2工厂模式函数和混入模式

5.3继承函数

6.拦截器

6.1拆分dispathXhr触发ajax方法;

6.2拦截管理器

6.3任务链执行对应函数 (注意this指向)

7.Adapters适配器

7.1在触发dispathXhr函数中判断axios运行的环境

7.2Adapters中对应不同的处理


1.axios的主要函数

  • 定义

  • 调用

2.针对url的一些处理

  • 工具类util —>单例模式;

let util =  {}
  • get处理url

    • buildURL函数

3.post参数及请求头的处理

  • 针对post参数的处理

    • data来进行json转换

    • 设置默认头部

4.返还对象的包装

  • 返还对象的形式

  • 针对返还对象的处理

5.工厂模式函数和混入模式

5.1axios的使用方式

5.1.1方式一:axios({})

axios({})

5.1.2方式二:axios.get({})

axios.get({})

5.1.3方式三:axios.create({})

axios.create({})

5.2工厂模式函数和混入模式

5.3继承函数

extends(a, b, thisArg) {//只拷贝循环对象自身方法for (let key in b) {if (b.hasOwnProperty(key)) {let val = b[key];// console.log("val值",val);if (thisArg && typeof val === 'function') {a[key] = val.bind(thisArg);} else {a[key] = val;}}}return a;}

6.拦截器

6.1拆分dispathXhr触发ajax方法;

 

6.2拦截管理器

class InterceptorManager {constructor() {this.handlers = [];}use(fulfilled, rejected) {this.handlers.push({fulfilled: fulfilled,rejected: rejected});}
}

6.3任务链执行对应函数 (注意this指向)

 

7.Adapters适配器

7.1在触发dispathXhr函数中判断axios运行的环境

//环境判断  和发送网络请求if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {return this.adapters.http(this.instanceConfig);} else if (typeof XMLHttpRequest !== 'undefined') {return this.adapters.xhr(this.instanceConfig);}

7.2Adapters中对应不同的处理