React 模块化Axios封装请求 统一响应格式 请求统一处理

依赖

javascript 复制代码
npm i  axios

拦截器

utils/request.js

javascript 复制代码
import axios from "axios";

const request = axios.create({
    baseURL: 'https://api.mxin.moe',
    timeout: 1000 * 10
});

// 请求拦截器
request.interceptors.request.use(req => {
    // 使用 headers 来设置 token
    req.headers["token"] = '123455';
    return req;
}, (error) => {
    // 请求错误处理
    return Promise.reject(error);
});

// 响应拦截器
request.interceptors.response.use(res => {
    return res.data; // 只返回响应的 data 部分
}, (error) => {
    // 响应错误处理
    return Promise.reject(error);
});

export default request;

接口模块化

api/user/info.js

javascript 复制代码
import request from "../../utils/request";

export function getUserInfo(params){
    return request({
        url:'/api/v1/mac/vendor',
        method:'get',
        params
    })
}

使用

javascript 复制代码
import {getUserInfo} from "../../api/user/info";
import {useState} from "react";

const Login = () => {
   const [user,setUser] =useState({})


    return (
        <div>
         <button onClick={()=>{
           getUserInfo({
                daxue:'武汉大学'
            }).then(res=>{
                setUser(res)
               console.log(user)
           })
         }}>登录</button>
        </div>
    );
};
export default Login;
相关推荐
阿kun要赚马内7 小时前
Python面向对象:@property装饰器
开发语言·前端·python
徒 花7 小时前
web前端技术知识复习
前端·html·web
意法半导体STM327 小时前
【官方原创】STM32H7双核芯片通过 STlink连接失败问题分析 LAT1654
开发语言·前端·javascript·stm32·单片机·嵌入式硬件
小王C语言7 小时前
【基础IO】————简单设计一下libc库
前端·数据结构·算法
雨雨雨雨雨别下啦7 小时前
Vue3——RabbitShopping
前端·javascript·vue.js
BumBle7 小时前
从声明式到命令式:Vue3 弹窗组件的工厂模式重构
前端
恋猫de小郭8 小时前
你的蓝牙设备可能正在泄漏你的隐私? Bluehood 如何追踪附近设备并做隐私分析
android·前端·ios
取名不易8 小时前
vue-drawer-board 简单的画图功能
前端
学习指针路上的小学渣8 小时前
JavaScript笔记
前端·javascript
取名不易8 小时前
在 nuxtjs中通过fabric.js实现画图功能
前端