React和Next.js开发常见的HTTP请求方法

简介: React和Next.js开发常见的HTTP请求方法

Fetch

get请求

优点:fetch是内置的,因此轻量,无需额外的安装

缺点:不具备缓存和错误状态的管理,需要手动解析响应

fetch('url')
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error(error))

对于post等其他请求,需要手动指定请求头和请求体内容类型

//fetch
const url = 'https://api.example.com/postData'
const data = {
    key1: 'value1',
    key2: 'value2'
}
const options = {
    method: 'POST',
    body: JSON.stringify(data),
    headers: {
        'content-type': 'application/json'
    }
}
fetch(url, options).then(response => {
    if (!response.ok) {
        throw new Error('Network Response was not ok')
    }
    return response.json()
}).then(data => console.log(data))
    .catch(error => console.log('Error:', error))

Axios

优点:

更简洁的 API:axios 提供了简洁易用的 API,使得发送 HTTP 请求变得更加简单。

功能强大:

请求和响应拦截器:允许你在请求发送到服务器之前或响应返回客户端之前对其进行修改。

取消请求:如果请求还未完成,你可以通过提供的取消令牌(CancelToken)来取消它。

文件上传:axios 支持使用 FormData 对象来上传文件。

客户端支持防止 CSRF:默认情况下,axios 将发送一个 X-XSRF-TOKEN 头,这有助于防止跨站请求伪造(CSRF)。

Promise 实现:基于 Promise 实现,使得异步编程更加直观和可维护。

支持浏览器和 Node.js:可以在浏览器和 Node.js 环境中使用。

缺点:

需要手动管理状态:与某些前端框架(如 Vue.js 的 Vuex 或 React 的 Redux)集成的状态管理库不同,axios 本身并不管理请求的状态(如加载中、已完成、错误等)。这需要开发者自行实现,可能会增加代码的复杂性。

无法自动处理加载和错误状态:如上述所说,axios 不会为你自动处理加载和错误状态。你需要监听请求的 then 和 catch 方法,并在其中处理相应的逻辑。

不过,这些缺点并不是 axios 本身的问题,而是它作为一个专注于发送 HTTP 请求的库所设计的初衷。对于状态管理和错误处理,你可以结合其他库(如 Vuex、Redux、React Query 等)来实现更完整的功能。


总的来说,axios 是一个强大且灵活的 HTTP 客户端库,它为你提供了很多方便的功能,并且与各种前端框架和库都有良好的兼容性。

npm install axios

get请求

import axios from 'axios'
axios.get('https://api.example.com/data')
.then(response=>console.log(response.data))
.catch(error=>console.error(error))

post等其他请求,支持直接传递请求头和请求体,语法更简洁

//fetch
import axios from 'axios'
const url = 'https://api.example.com/postData'
const data = {
    key1: 'value1',
    key2: 'value2'
}
const headers = {
    'Content-Type': 'application/json'
}
axios.post(url, data, headers)
    .then(response => console.log(response.data))
    .catch(error => console.error(error))

TanStack Query

React query-Vue Query

支持react,vue等框架

概览 | TanStack Query 中文文档

一款专门为处理数据获取和状态管理设计的库,具有错误处理,加载状态,缓存等功能

npm i @tanstack/react-query

优点:全面状态管理:提供明确的加载、错误和成功状态;

更少代码,简洁的代码实现复杂的功能

得空搓了个文档库,一入计算机深似海,学不完啊...,还有好多要做...

目录
相关文章
|
8月前
|
编解码 前端开发 JavaScript
js react antd 实现页面低分变率和高分变率下字体大小自适用,主要是配置antd
在React中结合Ant Design与媒体查询,通过less变量和响应式断点动态调整`@font-size-base`,实现多分辨率下字体自适应,提升跨设备体验。
380 2
|
11月前
|
JavaScript 前端开发 API
Node.js中发起HTTP请求的五种方式
以上五种方式,尽管只是冰山一角,但已经足以让编写Node.js HTTP请求的你,在连接世界的舞台上演奏出华丽的乐章。从原生的 `http`到现代的 `fetch`,每种方式都有独特的风格和表现力,让你的代码随着项目的节奏自由地舞动。
922 65
|
12月前
|
前端开发 JavaScript 安全
除了高阶组件和render props,还有哪些在 React 中实现代码复用的方法?
除了高阶组件和render props,还有哪些在 React 中实现代码复用的方法?
439 62
|
JSON 自然语言处理 前端开发
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
700 72
【01】对APP进行语言包功能开发-APP自动识别地区ip后分配对应的语言功能复杂吗?-成熟app项目语言包功能定制开发-前端以uniapp-基于vue.js后端以laravel基于php为例项目实战-优雅草卓伊凡
|
JSON API 网络架构
HTTP常见的请求方法、响应状态码、接口规范介绍
本文详细介绍了HTTP常见的请求方法、响应状态码和接口规范。通过理解和掌握这些内容,开发者可以更好地设计和实现W
2230 83
|
12月前
|
运维 前端开发 数据可视化
【CodeBuddy】挑战一句话开发一个完整项目之:React表单验证系统
本文分享了一个基于React 19构建的用户注册表单系统,采用模块化CSS和状态驱动视图更新,实现实时校验、错误提示与提交反馈等功能。核心亮点包括验证规则引擎(如密码复杂度校验)、交互反馈体系(输入框警示、按钮禁用)及加载动画优化。通过函数式更新确保状态同步,正则表达式实现多条件验证,CSS伪元素打造流畅体验。代码结构清晰,可扩展性强,适合作为React表单开发模板。文末附CodeBuddy免费下载链接,助力高效开发!
285 1
【CodeBuddy】挑战一句话开发一个完整项目之:React表单验证系统
|
11月前
HTTP协议探究:常用方法一网打尽
总的来说,HTTP协议的命令犹如一把钥匙,解锁了互联网世界的大门。它是规则,也是工具,了解了它,就等于掌握了互联网的一把通行证。我们每天都在用,也常常无视它,但是只有深刻理解了它,才能更好地运用它。如此,我们的互联网世界旅程就会变得更加顺畅,更加有趣。
257 14
|
前端开发 JavaScript NoSQL
使用 Node.js、Express 和 React 构建强大的 API
本文详细介绍如何使用 Node.js、Express 和 React 构建强大且动态的 API。从开发环境搭建到集成 React 前端,再到利用 APIPost 高效测试 API,适合各水平开发者。内容涵盖 Node.js 运行时、Express 框架与 React 库的基础知识及协同工作方式,还涉及数据库连接和前后端数据交互。通过实际代码示例,助你快速上手并优化应用性能。

热门文章

最新文章