当前位置:   article > 正文

Vue3使用axios的配置教程详解_vue3 axios

vue3 axios

1.安装

npm install --save axios vue-axios

2.在src根目录创建service文件夹。然后创建axios.js

2.1在axios.js添加拦截器,请求拦截:initAxios.interceptors.request;响应拦截:initAxios.interceptors.response

  1. import axios from "axios";
  2. const initAxios = axios.create({
  3. timeout: 1800000//数据响应过期时间
  4. })
  5. //请求拦截器
  6. initAxios.interceptors.request.use((config) => {
  7. //在发送之前做点什么
  8. return config
  9. }, (error) => {
  10. //对请求错误做点什么
  11. return error
  12. })
  13. //响应拦截器
  14. initAxios.interceptors.response.use((response) => {
  15. if (response.resultCode === 200 ) {
  16. return response.data
  17. } else {
  18. return {resultCode: -1}
  19. }
  20. })
  21. //导出
  22. export default () => initAxios

3.在文件夹再创建一个service.js文件

  1. //引入封装好的 axios
  2. import Axios from './axios'
  3. //实例化
  4. const instance = Axios()
  5. //创建需要的请求方法:get post put delete
  6. //url:请求的接口地址
  7. //params:请求参数
  8. //headers:请求头
  9. export default {
  10. get(url, params, headers) {
  11. return instance.get(url, {params, headers})
  12. },
  13. post(url, params, headers) {
  14. return instance.post(url, params, {headers})
  15. },
  16. put(url, params, headers) {
  17. return instance.put(url, params, {headers})
  18. },
  19. delete(url, params, headers) {
  20. return instance.delete(url, {params, headers})
  21. }
  22. }

 4.再创建一个index.js

  1. //引入封装好的 service
  2. import service from "@/service/service";
  3. //声明一个基础接口变量
  4. let baseURL;
  5. //配置开发环境
  6. if (process.env.NODE_ENV === 'development') {
  7. baseURL = 'http://www.****.com:8000/';
  8. }
  9. // 配置生产环境
  10. if (process.env.NODE_ENV === 'production') {
  11. baseURL = 'http://www.*****.com:8001/';
  12. }
  13. //设置请求头(如果请求头统一的话可以在axios文件设置,则无须从这里传过去)
  14. const header = {
  15. Accept: 'application/json;charset=UTF-8',
  16. }
  17. //根据自身需求
  18. let _service={
  19. getList(data) {
  20. const url = baseURL + 'index/getList';
  21. return service.post(url, data, header);
  22. }
  23. }
  24. //导出
  25. export default _service

5.使用方法

  1. import _service from "@/service";
  2. _service.getList({你的参数}).then(res => {
  3. console.log(res)
  4. })

附: vue3没有this.所以使用的时候直接引用就好,如果项目比较大,接口多,可以分模块定义接口,使用的时候也是分模块导入.  以admin模块接口举例

说明:因为我的项目只有post请求,我就把请求头写在post方法里面了.后续的接口定义就省去了请求头的参数.

1.admin模块,admin.js 

2.index.js 引入接口统一导出

3.vue页面引用 ,此时只有admin.js定义的接口.

4.methods方法调用接口,其中 _utils.setFormData(this.searchModel) 是我项目里自定义的一个参数格式转化,this.loadData(res) 是我项目里对响应数据统一处理的方法

总结

以上就是vue3的配置

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

闽ICP备14008679号