@hsuna/taro-axios
v4.0.4
Published
在 Taro 中使用 axios。
Downloads
9
Readme
@hsuna/taro-axios
源起
因为 Taro 不支持解析 package.json 里的 browser 属性,导致所有使用了该特性的包都可能无法在 Taro 里正常运行。不幸的是,axios 就是其中之一。
于是,taro-axios 预先解析了 axios 包中的 browser 属性并提供了 Taro 版的请求适配器后,将之打包出了一个 Taro 可用的版本。
也就是说,taro-axios 只是 axios 的 Taro 重制版,并非是为 Taro 仿写了一个 axios。axios 提供什么,taro-axios 也就提供什么。
特性
- 使用 TypeScript 编写,类型友好
- 基于 Taro 适配器,天然支持多端
- 支持 API 一致的多端上传文件
安装
Taro 3、Taro 4
# yarn
yarn add @hsuna/taro-axios
# 或, npm
npm i @hsuna/taro-axios --saveTaro 1、Taro 2
# yarn
yarn add [email protected]
# 或, npm
npm i [email protected] --save使用
使用方法同 axios。
只不过你得这样引入 axios:
import { axios } from "@hsuna/taro-axios";
// 自版本 0.7.0 起你也可以这样引入:
// import axios from 'taro-axios'
axios.get("https://jsonplaceholder.typicode.com/todos/1").then((res) => {
console.log(res.data);
});上传文件
为了支持多端上传文件,我们得引入 PostData 和 FileData 两个类,示例:
import { axios, PostData, FileData } from "@hsuna/taro-axios";
async function uploadImage() {
const { tempFilePaths } = await Taro.chooseImage({ count: 1 });
Taro.showLoading({ title: "图片上传中..." });
const res = await axios.post(
"https://sm.ms/api/upload",
new PostData({
smfile: new FileData(tempFilePaths[0]),
ssl: true,
format: "json",
})
);
Taro.hideLoading();
Taro.showModal({
title: "返回结果",
content: JSON.stringify(res.data),
});
}许可
MIT © Hsuna Chan
