简单封装
@/api/instance.js
import axios from 'axios';
const instance = axios.create();
instance.interceptors.response.use(
(response) => {
return response;
},
(err) => {
return Promise.reject(err);
}
);
async function MetroApi(
url = '',
{ method = 'get', data = {}, params = {}, tipError = true } = {}
) {
const config = { url, method, params, data };
try {
const res = await instance.request(config);
return res.data;
} catch (err) {
tipError && console.log(`fetch data error, url is ${url}`, err.message);
}
}
export default MetroApi;
@/api/index.js
import MetroApi from './instance';
import url from './url';
export const login {
checkUser() {
MetroApi('', {
method: 'post',
data: {
}
})
}
}
或者
@/utils/api.js
//const request = require( './request.js' )
import request from './request'
const qs = require('qs'); // qs 是 NPM 的包,用于处理对象类型的参数变为axios可以用的字符串,具体不清楚
export const authVendor = {
getGoods: params => request({
method: 'POST',
url: '/GoodsAttr',
data: qs.stringify(params)
})
}
组件内
import { authVendor } from "@/utils/api"
...
created(){
authVendor.getGoods({
key: value,
...
}).then(res => {
this.data = res.code == "0" ? res.data : []
})
}