首页 / IOS / Axios 实例与模块封装
Axios 实例与模块封装
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Axios 实例与模块封装,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2320字,纯文字阅读大概需要4分钟。
内容图文
![Axios 实例与模块封装](/upload/InfoBanner/zyjiaocheng/1029/d6b2180fa69c4cdb9497a9862d75b1e3.jpg)
一、实例
为什么引入axios实例?不是有axios()可以用吗?
因为,直接使用axios时,是全局的使用,当url的服务器地址不一样时,即跨域请求,那么就需要修改全局的配置了,这样很麻烦。
于是,使用实例的Axios,即局部的axios实例。
axios实例基本使用:
// ./src/main.js
const instance1 = axios.create({
baseURL:'http://127.0.0.0',
timeout : 3000
});
const instance2 = axios.create({
baseURL:'http://56.1.4.1',
timeout : 3000
});
instance1({
url: '/get',
}).then(res =>{
console.log(res);
});
instance2({
url: '/get',
}).then(res =>{
console.log(res);
});
即,使用axios.create({//配置信息}),创建一个实例,传入配置参数,需要在发送网络请求的时候,直接调用这个实例,一个实例就对应一个服务器的地址。
二、axios模块封装
为什么引入axios模块封装?
因为,每个组件都可能有发送网络请求的情况,开发中会给每个组件的created()声明周期函数里面添加请求代码,如果要给每个组价都写这个请求代码,那么迭代技术的时候就难维护。
所以,需要把这些发送请求的代码部分抽离出来,封装再导入。
网络请求封装思路:
在./src下创建目录network,里面写网络请求的代码
例如, ./src/network/request.js:
//./src/network/request.js
import axios from 'axios';
export function requset(config, success, failure){
const instance1 = axios.create({
baseURL: 'http://httpbin.org',
timeout : 5000
});
instance1(config).then( res=> {
console.log(res);
success(res);//data processing
}).catch(err => {
console.log('err');
failure(err);
});
};
随后,在main.js中导入这个function,调用并发送网络请求配置,回调函数等。
注意,request接收的参数,success、failure都是回调函数,因为,不能在网络请求的代码部分,写一些数据处理的代码,所以就把这些代码"回调" 出去。
// ./src/main.js
import {Request} from './network/request';
Request({ url: '/get'},
res =>{ console.log(res)},
err =>{ console.log(err)}
);
当然,也可以使用Promise进行封装,把网络请求代码和处理数据代码分离开,即:
高级写法:
// ./src/network/request.js
import axios from 'axios';
export function request(config){
const instance1 = axios.create({
baseURL: 'http://httpbin.org',
timeout : 5000
});
return instance1(config);
}
// ./src/main.js
import {request} from './network/request';
request({
baseConfig: { url: '/get'},
success: (res)=>{ console.log(res)},
failure: (err)=>{ console.log(err)},
}).then(...).catch(...)
因为,axios.create()是经过Promise封装的,它执行的结果本身就返回一个 new Promise(),所以,这里直接返回instance实例;
另外,config是封装了 baseConfig、success、failure
内容总结
以上是互联网集市为您收集整理的Axios 实例与模块封装全部内容,希望文章能够帮你解决Axios 实例与模块封装所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。