vue axios二次封装思考和思路【自用】

axios二次封装


说明:也看了很多的封装了。但是脑子中也都是很乱的。由于对于项目很多都是未知。后台有可能传来什么样的数据也是未知,想要尽可能的学习,然后能更好的封装。稍微写一下,留作自用。

觉得封装思路对我有用的: vue中Axios的封装和API接口的管理.

安装

npm install axios --save

补充:

  • -S是–save的简写
  • -D是–save-dev的简写
    我之前只知道,-S是运行时依赖,-D是开发时依赖。还是去多了解了一下。
    区别:
  • -S 依赖包的名称会出现在 dependencies 下
  • -D 依赖包的名称会出现在 devDependencies 下
    这两个文件均在 package.json 文件中。而
    dependencies 是运行时依赖。
    devDependencies 是开发时依赖。
    总结: 如果只在开发时会用到,发布后用不到,就使用-D。

思路

  • 在util文件夹下新建一个request.js文件。
    用来封装请求和相应拦截。
import axios from 'axios'

let service = axios.create({ //创建一个axios实例
	baseUrl: '',
	timeout: 2000
});

//request请求拦截器
service.interceptor.request.use(
	config => {
		// do something like getTooken
		return config;
	},
	error => {
		return Promise.error(error);
	}
);

//response响应拦截
service.interceptor.response.use(
	response => {
		//do something
		return Promise.resolve(response);
	},
	error => {
		//do something
		return Promise.reject(error);
	}
);
  • 新建api文件夹,在api文件夹下建立依据业务需求的.js文件
// testApi.js
import request from '@/utils/request';

/**
 * 添加接口说明
 * 这只是个例子,因此很多变量都是空
 */
export const testApi = param => request({
	url: '',
	method: '',
	data: JSON.stringify(param),
	responseType: 'blob',
	...	
})

使用

//Test.vue
import { testApi } from '@/api/testApi'

mounted() {
  this.getFakeDataApi();
},
methods: {
  async getFakeDataApi() {
	try {
	  let params = {
		id: '01000',
		num: 13
	  }
	  this.data = await testApi(params);
	  // do something
	  console.log(this.data);
	} catch(e) {
	  // do something you need
	  console.log(e);
	}
  }
}

待改善。。。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值