基于axios
支持自定义适配器,只需要针对不同环境下的http请求api进行适配进行替换,axios
可以使用在任意平台。
由于axios
在其他项目中大量使用,本项目实现Taro
框架下的适配器,可以在Taroa
项目中完美使用原汁原味的axios
,统一团队前端技术栈,统一http请求类库。
采用此方式对项目零侵入,开发者专注于axios
的api即可。
有用点小星星支持~
npm i [email protected]
npm i axios-taro-adapter
- create axios instance
仅需2行代码,完美使用axios
替换Taro.request
// api.js
import axios from "axios";
import { TaroAdapter } from "axios-taro-adapter";
const API_URL = "https://api.xxxx.com/";
const instance = axios.create({
baseURL: API_URL,
timeout: 10000,
adapter: TaroAdapter, // add this line,添加这一行使用taroAdapter
});
export const postData = data => {
return instance.post("/api/test", data);
}
例如: 原汁原味的拦截器
// interceptors for request
instance.interceptors.request.use(
function (config) {
return config;
},
function (error) {
return Promise.reject(error);
}
);
// interceptors for response
instance.interceptors.response.use(
function (response) {
if (response.data.code !== 0) {
return Promise.reject(response.data);
} else {
return response.data;
}
},
function (error) {
return Promise.reject(error.message);
}
);