0.0.5 • Published 5 years ago

axios-vue-http v0.0.5

Weekly downloads
3
License
ISC
Repository
github
Last release
5 years ago

axios-vue-http

基于axios进行二次封装, 提供vue项目使用

安装

npm install -S axios-vue-http

使用

import Http from 'axios-vue-http'
Vue.use(Http);

example

import Http from 'axios-vue-http'
Vue.use(Http);

const apiList = [
	{apiName: 'getTest', method: 'GET', url: 'api/test'},
	{apiName: 'postTest', method: 'POST', url: 'api/test'},
	{apiName: 'delTest', method: 'DELETE', url: 'api/test'},
	{apiName: 'putTest', method: 'PUT', url: 'api/test'},
]

function success({res, resolve, reject}) {
  // 接口请求成功处理 (status === 200)
  // ...处理数据,
  // example  res.data = {code: 200, data: {list: [], page: 1}, msg: '获取成功'}
  let { data } = res;
  if(data.code = 200){
    resolve(data.data);
  }

  // example  res.data = {code: -10001, msg: '获取失败'}
  let { data } = res;
  if(data.code < 0){
    app.$message.error(data.msg);
    reject(new Error(data.msg));
  }

  // 使用resolve(数据)向下传递
  // 使用reject(err)向下传递
}

function fail({res, reject}) {
	// 接口请求失败处理(status !== 200)
  // 使用reject(err)向下传递
}


function genHeader() {
  let headers = {
    token: localStorage.getItem('token') || undefined,
  }
  return { headers };
}

const app = new Vue({
  beforeMount() {
    this.$http.addApiList(apiList); //设置接口列表
    this.$http.requestInterceptors(genHeader); //设置请求拦截器,添加headers token
    this.$http.setSuccess(success); //设置请求成功回调 
    this.$http.setFail(fail); //设置请求失败回调 
  },
  render: h => h(App),
});

app.$mount('#app');

request

request(apiName, data, param);

参数描述
apiName接口请求名称
data接口发送数据 post中使用data, get中会拼到url中
paramurl参数,例:request('getTest',{a:1}, '/123') ===> https://xxx.xxx.xxx/api/test/123?a=1
// 在页面中使用

	methods: {
		async getFetach(){
			try {
				const res = await this.$http.request('postTest', {p1: 1});
			}catch(err) {
				console.error('请求失败:', err)
			}
		},
	}
0.0.5

5 years ago

0.0.3

5 years ago

0.0.4

5 years ago

0.0.2

5 years ago

0.0.1

5 years ago