javascript - 如何在单独的组件/文件中进行 axios API 调用?
问题描述
如何在单独的组件/文件中调用 axios API?
例子:
我创建了包含要集成的组件的 index.jsx 文件,axios
然后我创建了该app.jsx
文件以呈现包含文件中 axios 的 index.jsxindex.jsx
文件
谢谢之前
解决方案
api
您可以为所有 API创建一个单独的文件夹:
假设你有AuthenticationAPI
,你必须是这样的:
AuthenticationAPI.js
import axios from 'axios';
export const onAuthenticate = payload => {
const URL = `YOUR_URL`;
return axios(URL, {
method: 'POST/GET',
headers: {
'content-type': 'application/json', // whatever you want
},
data: payload,
})
.then(response => response.data)
.catch(error => {
throw error;
});
};
在你 App.js
import * as AuthenticateAPI from 'api/AuthenticationAPI';
// in your CDM
componentDidMount(){
AuthenticateAPI.onAuthenticate(payload).then((res)=>{ //any payload you want to send just for example
you can get response here in then block
})
}
这是为了基本示例。如果它成为必需品,您可以使用 redux否则 不要滥用它。
PS:Axios建立在可取消的承诺模式之上。它有它的中止控制器。简而言之,您可以取消任何待处理的网络调用,这是使用 Observable 的绝佳替代方案。取消 API 调用有时非常重要,当您在正在进行的 API 请求之间导航到另一个页面时并不真正需要数据,因此数据是无用的,AXIOS 是唯一的救星。
推荐阅读
- java - 如何在打开另一个 JFrame 时关闭一个 JFrame?
- jenkins - 我们如何通过使用与 Jenkins 中的代码相同的管道来传递(参数)三个节点从变量
- memory - 如何使用 gdb 或任何其他工具通过加载或存储操作(ARM 处理器)找到所有内存访问地址
- algorithm - BFS可以用来识别最远的顶点吗?
- scala - 由于某些字段的值未知,使用 Spark 写入 parquet 文件的数字格式异常
- laravel - 使用 Traefik、Nginx 和 Laravel 配置 Docker
- php - 使用 Laravel 在表上显示越界数据
- google-chrome-extension - webrequest.onbeforerequest,如果 chrome 没有运行,则不会获得第一个导航
- amazon-web-services - AWS 云手表中的日志机制是什么?
- html - Angular:绑定到“已检查”属性时触发单选按钮的“更改”事件