react 封装哀求axios,直接调用即可

打印 上一主题 下一主题

主题 798|帖子 798|积分 2396

概要
我们在开辟项目的时间,常常会遇到接口哀求的问题的,若我们不举行接口的统一管理,代码开辟不但多而且很贫苦轻易堕落,也倒霉于项目的维护。下面我们一下学习下react项目中将怎样封装哀求,也从另一个方面中少写一些代码。哈哈
封装流程

1、在src目次下创建文件request
2、在文件request中创建api.ts和service.ts文件(默认ts格式范例)
3、在文件中写下封装代码
api.ts(重要写api哀求接口)
  1. export const LoginByAccount="/auth/login_weixin_by_account" //账号密码登录
  2. export const LoginVcode="/login/vcode" //获取微信session
复制代码
service.ts(axios哀求封装)
  1. //处理请求拦截和响应拦截
  2. //引入
  3. import axios  from "axios";
  4. //判断一下用户是否登录
  5. function getToken(){ //获取token
  6.   return sessionStorage.getItem('token')
  7. }
  8. //3创建axios实例
  9. let httpClient = axios.create({
  10.   baseURL:"/api",
  11.   timeout:6000,
  12.   withCredentials:true
  13. })
  14. //4创建请求拦截和响应拦截
  15. httpClient.interceptors.request.use(
  16.     //成功
  17.     config=>{
  18.       if(getToken()){
  19.         config.headers['token']=getToken();
  20.       }
  21.       //返回
  22.       return config
  23.     },
  24.     //错误
  25.     err=>{
  26.       return Promise.reject(err)
  27.     }
  28.   )
  29.   //响应拦截
  30.   httpClient.interceptors.response.use(
  31.     //成功
  32.     response=>{
  33.       
  34.       let res = response.data
  35.       if(res.code=='401'){
  36.         window.location.href='/login'
  37.       }
  38.       return Promise.resolve(res)
  39.     },
  40.     //错误
  41.     err=>{
  42.       return Promise.reject(err)
  43.     }
  44.   )
  45. // 封装get请求
  46. export const GET = (url:any, config = {}) => httpClient.get(url, config);
  47. // 封装post请求
  48. export const POST = (url:any, data = {}, config = {}) => httpClient.post(url, data, config);
  49. // 封装put请求
  50. export const PUT = (url:any, data = {}, config = {}) => httpClient.put(url, data, config);
  51. // 封装delete请求
  52. export const DEL = (url:any, config = {}) => httpClient.delete(url, config);
复制代码
4、页面的调用
  1. import {POST} from "@/request/service"
  2. import {LoginByAccount} from "@/request/api"
  3. const getCaptchaImg = async ()=>{
  4.     //做验证码的请求
  5.     GET(LoginVcode,'').then((res:any)=>{
  6.       console.log(res);
  7.     })
  8. }
复制代码

小结

实现起来比较简单,必要的小伙伴可以直接拿去用,在自己的项目上举行兼容调试即可
必要全部项目调试的源码可从前去
GitHub - yididid/react-manage: 重要运用了React + TypeScript + Vite + toolkit + redux技术来开辟商品管理后台,开辟了路由、接口哀求(包罗跨域办理)等基本功能的开辟,喜好的小伙伴可以拿去

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

正序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

南七星之家

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表