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;
相关推荐
shyshi6 小时前
vercel 部署 node 服务和解决 vercel 不可访问的问题
前端·javascript
前端大神之路7 小时前
vue2 响应式原理
前端
一个努力的小码农7 小时前
Rust中if let与while let语法糖的工程哲学
前端·rust
雾岛听风来7 小时前
Android开发中常用高效数据结构
前端·javascript·后端
IT_陈寒7 小时前
Vue 3性能优化实战:这5个Composition API技巧让你的应用快30%
前端·人工智能·后端
IT_陈寒7 小时前
Vue3性能翻倍的5个秘密:从Composition API到Tree Shaking实战指南
前端·人工智能·后端
IT_陈寒7 小时前
JavaScript 性能优化:3个V8引擎隐藏技巧让你的代码提速50%
前端·人工智能·后端
沐怡旸7 小时前
【技术选型】前端框架:Vue vs React - 组合式API与Hooks的哲学之争
前端·面试
charlie1145141917 小时前
HTML 理论系统笔记2
前端·笔记·学习·html·基础·1024程序员节·原生