Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/fjc0k/taro-axios
在 Taro 中使用 axios。
https://github.com/fjc0k/taro-axios
axios taro
Last synced: 25 days ago
JSON representation
在 Taro 中使用 axios。
- Host: GitHub
- URL: https://github.com/fjc0k/taro-axios
- Owner: fjc0k
- License: mit
- Created: 2019-05-16T02:22:39.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2022-12-09T15:03:28.000Z (about 2 years ago)
- Last Synced: 2024-10-15T17:18:14.865Z (about 2 months ago)
- Topics: axios, taro
- Language: TypeScript
- Homepage: https://www.npmjs.com/package/taro-axios
- Size: 351 KB
- Stars: 138
- Watchers: 4
- Forks: 8
- Open Issues: 6
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
- awesome-taro - taro-axios - 在 Taro 中使用 axios
README
在 [Taro](https://github.com/NervJS/taro) 中使用 [axios](https://github.com/axios/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
```bash
# yarn
yarn add taro-axios# 或, npm
npm i taro-axios --save
```### Taro 1、Taro 2
```bash
# yarn
yarn add [email protected]# 或, npm
npm i [email protected] --save
```## 使用
使用方法同 [axios](https://github.com/axios/axios#axios)。
只不过你得这样引入 `axios`:
```ts
import { axios } from '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` 两个类,示例:
```ts
import { axios, PostData, FileData } from '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 © Jay Fong