当前位置:   article > 正文

vue二次封装axios_vue axios的二次封装

vue axios的二次封装

一、控制台输入命令安装axios

npm install axios

二、项目src文件夹下创建api文件夹,文件夹内分别创建index.js和request.js文件

request.js文件用于编写二次封装axios代码以及配置请求拦截器

  1. // 对axios进行二次封装
  2. import axios from "axios"
  3. // 引入进度条 npm install --save nprogress 进度条
  4. import nprogress from "nprogress"
  5. // 引入进度条样式
  6. import "nprogress/nprogress.css"
  7. // start:进度条开始 fone:进度条结束
  8. // 1、利用axios对象的方法create,去创建一个axios实例
  9. // 2、request就是axios,只不过稍微配置一下
  10. const requests = axios.create({
  11. // 配置对象
  12. // 基础路径,发请求的时候,路径当中会出现api
  13. baseURL: "/api",
  14. // 代表请求超时的时间
  15. timeout:5000,
  16. })
  17. // 请求拦截器
  18. requests.interceptors.request.use((config)=>{
  19. // config:配置对象,对象里面有一个属性很重要,headers请求头
  20. nprogress.start()
  21. return config
  22. })
  23. // 响应拦截器
  24. requests.interceptors.response.use((res)=>{
  25. // 成功回调函数
  26. nprogress.done()
  27. return res.data
  28. },(error)=>{
  29. // 失败回调函数
  30. return Promise.reject(new Error('faile'))
  31. })
  32. // 对外暴露
  33. export default requests

index.js用于做api接口的统一管理

  1. // API统一管理
  2. import requests from "./request";
  3. // /api/product/getBaseCategoryList get 无参数
  4. export const reqCategoryList = () => requests({ url: '/product/getBaseCategoryList', method: 'get' })
  5. // post 带参
  6. export const reqGetSearchInfo=(data)=>requests({url:'/list',method:'post',data})

接口调用操作

  1. //解构index.js的接口函数
  2. import {reqCategoryList} from '@/api/index'
  3. async categoryList() {
  4.     let res = await reqCategoryList()
  5.     if(res.code==200){
  6.         //请求成功操作
  7.     }
  8. }
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小小林熬夜学编程/article/detail/285602
推荐阅读
相关标签
  

闽ICP备14008679号