react 封装网络请求

1 篇文章 0 订阅
该博客介绍了如何使用npm安装axios库,并展示了如何在React组件中封装axios以进行网络请求。封装后的函数能处理单个请求或批量请求,返回Promise,方便进行异步操作。此外,还展示了如何设置axios为React组件的全局方法。
摘要由CSDN通过智能技术生成
  • 安装axios网络请求

npm install axios -S

在这里插入图片描述

import axios from "axios";
//封装网络请求
function startRequestOnly(param){
  return axios({...param}).then(res=>res.data).catch(err=>err);
} 

//封装网络请求可以用来接收多个
async function network(params){
    if(params instanceof Array){
      //定义数组存储多个数据
      let results = [];
      for(let index in params){
        let result = await startRequestOnly(params[index]);
        console.log(result);
        results.push(result);
      }
      return results; 
    }else{
      return await startRequestOnly(params);
    }
} 

//导出网络请求
export default network; 
  • 在index.js中导入network,并且设置axios的全局访问
// 导入Axios网络请求
import network from "./network";
//设置axios全局访问
React.Component.prototype.$axios = network; 
React封装网络请求可以使用各种库,如axios、fetch等。下面是一个简单的示例,演示如何使用axios来封装网络请求: 1. 首先,安装axios库: ``` npm install axios ``` 2. 创建一个名为api.js的文件,用于封装所有的API请求: ```jsx import axios from 'axios'; // 封装GET请求 export const get = async (url, params) => { try { const response = await axios.get(url, { params }); return response.data; } catch (error) { console.error(error); throw error; } }; // 封装POST请求 export const post = async (url, data) => { try { const response = await axios.post(url, data); return response.data; } catch (error) { console.error(error); throw error; } }; ``` 3. 在需要发送网络请求的组件中使用封装的API方法: ```jsx import React, { useEffect, useState } from 'react'; import { get } from './api'; const MyComponent = () => { const [data, setData] = useState(null); useEffect(() => { const fetchData = async () => { try { const result = await get('https://api.example.com/data'); setData(result); } catch (error) { // 处理错误 } }; fetchData(); }, []); if (!data) { return <div>Loading...</div>; } return ( <div> {/* 使用获取到的数据 */} {data.map((item) => ( <div key={item.id}>{item.name}</div> ))} </div> ); }; export default MyComponent; ``` 这是一个简单的示例,你可以根据实际需求进行扩展和修改。封装网络请求可以使代码更加模块化和可复用,同时也方便统一处理错误和请求拦截等操作。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值