当前位置:   article > 正文

react 封装请求axios,直接调用即可_react+ts封装axios请求

react+ts封装axios请求

概要

我们在开发项目的时候,常常会遇到接口请求的问题的,若我们不进行接口的统一管理,代码开发不仅多而且很麻烦容易出错,也不利于项目的维护。下面我们一下学习下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. let res = response.data
  34. if(res.code=='401'){
  35. window.location.href='/login'
  36. }
  37. return Promise.resolve(res)
  38. },
  39. //错误
  40. err=>{
  41. return Promise.reject(err)
  42. }
  43. )
  44. // 封装get请求
  45. export const GET = (url:any, config = {}) => httpClient.get(url, config);
  46. // 封装post请求
  47. export const POST = (url:any, data = {}, config = {}) => httpClient.post(url, data, config);
  48. // 封装put请求
  49. export const PUT = (url:any, data = {}, config = {}) => httpClient.put(url, data, config);
  50. // 封装delete请求
  51. 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技术来开发商品管理后台,开发了路由、接口请求(包含跨域解决)等基本功能的开发,喜欢的小伙伴可以拿去

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/761108
推荐阅读
相关标签
  

闽ICP备14008679号