Vue-axios的实例和模块封装(四)

14 篇文章 0 订阅
5 篇文章 0 订阅

一.
当你写一个用到axios框架的前端的时候,建议你创建一个文件封装axios,让所有用到axios的文件都去引用自己封装axios文件。
防止以后axios框架出现大量BUG或者不再维护,方便修改你写的代码。

二.创建一个封装axios的文件

//新建一个文件夹叫network文件叫request.js
import axios fron 'axios'
export function requset(config,success,failure){
	//1.创建axios的实例
	const instance = axios.create({
		baseURL: 'http://123.207.21.32:8000',
		timeout: 5000
	})

	instance(config)
	//当回调成功时,执行此函数
	    .then(
		res => {
		success(res);
		})
	//当回调失败时,执行此函数
		.catch(
		err => {
		failure(err);
		})
}

引用封装axios文件的main.js文件

import {request} from "./network/request";

request({
	url:'/home/multidata'
},res =>{
  console.log(res);	
},err => {
  console.log(err);	
})

注意:
1.回调:当前用到的回调是main.js中有三个属性。url、res、err分别对应request.js中的三个参数config、success、failure。
当执行mian.js中res时,就调用request.js中的
res => {
success(res);
})
接下来success(res)把数据res回调到main.js中的console.log(res);方法中,来进行打印。

三.开发当中最简单、最常用的方式:创建Promise方式

//request.js

export function request(config){
//创建axios的实例
const instance = axios.create({
	baseURL: 'http://123.207.32.32:8000',
	timeout:5000
})
//发送真正的网络请求
//直接返回一个Promise,在main.js中.then接收
return instance(config)
}

//解析为什么发送网络请求的时候可以直接return instance(config)
export function request(config){
  return new Promise((resolve,reject) => {
    const instance = axios.create({
	   baseURL: 'http://123.207.32.32:8000',
	   timeout:5000
    })
    //发送真正的网络请求
    instance(config)
	 .then(res => {
	  resolve(res)
	})
	.catch(err => {
	  resolve(err)
	})
  })
}
//通过底层源码发现可以简化到上边的最简形式
//main.js

request({
	url:'/home/multidata'
}).then(res => {
	console.log(res);
}).catch(err => {
	console.log(err);
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值