首页 > 其他分享 >5.vue中axios封装工程化

5.vue中axios封装工程化

时间:2024-08-16 17:58:33浏览次数:11  
标签:function axios 封装 请求 get vue params 工程化

vue工程化中axios封装

视频演示地址:https://www.bilibili.com/video/BV121egeQEHg/?vd_source=0f4eae2845bd3b24b877e4586ffda69a
通常我们封装需要封装request.js基础的发送请求工具类,再根据业务封装service类,service类是具体业务的接口封装,在页面上直接调用的是servive类的接口。下面是封装过程

1.axios常用api请求

封装之前,我们先熟悉一下axios原生是怎么发送请求的,原生发送请求的方式是直接写请求地址和参数、处理响应的,但在项目中,如果我们需要把开发环境地址改成生产环境地址,需要修改很多地方的接口,并且每个地方都写这么一大串代码,可读性和复用性非常低,因此需要进行封装。

原生get请求:

//get请求: 
// 参数一:param1  请求地址
//参数二:请求参数配置信息
//params:请求参数,会以url的形式拼接到请求地址后
//headers:请求头
axios.get('/user?ID=12345',{
	params:{},
	headers:{}
})
  .then(function (response) {
    // 处理成功情况
    console.log(response.data);
  })
  .catch(function (error) {
    // 处理错误情况
    console.log(error);
  })
  .finally(function () {
    // 总是会执行
  });

原生post请求:

//post:请求,三个参数
// 参数一:请求地址
// 参数二:请求参数
// 参数三:配置信息
axios.post('/user', {
    firstName: 'Fred',
    lastName: 'Flintstone'
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

2.封装request.js

下面开始进行封装:

2.1 vue工程的 src下建立utils文件夹,创建request.js文件。

主要将通用的get请求,post请求进行封装,提取出域名网址

封装请求拦截,用于在发送请求前做一些通用处理,比如加token验证等等

封装响应拦截处理,用于处理通用的响应,比如返回不同的状态码时,给予路由跳转等等

代码如下

import axios from "axios";

const axiosInstance = axios.create({
    baseURL: 'https://api.uomg.com', //测试域名,根据实际情况修改
    timeout: 4000,
})

// 全局请求拦截
axiosInstance.interceptors.request.use(
    function (config) {
        // console.log('全局请求拦截');
        return config;
    }, 
    function (error) {
        return Promise.reject(error);
    }
);
// 全局响应拦截
axiosInstance.interceptors.response.use(
  function (response) {
    // console.log('全局响应拦截');
    return response;
  }, 
  function (error) {
    return Promise.reject(error);
  }
);

export function get(url, params){
    return axiosInstance.get(url, {
        params: params
    })
}

export function post(url, data){
    return axiosInstance.post(url, data)
}

3.封装serve层

创建src/api/service文件夹,例如对login业务进行封装,可以创建loginService.js,直接在此处写请求接口,只放开数据让具体的页面进行调用

import {post,get} from '../../utils/request'

/**
 * 登录接口
 * @param {*} params 
 * params.username  xxxxx
 * params.password  xxxxx
 */
export function login(params){
    return get('/api/icp', {
        username: params.username,
        password: params.username,
        domain: 'qrpay.uomg.com'
    })
}

在这里插入图片描述

4.页面测试

在vue界面上找一个控件,点击调用刚刚封装的login接口,正确打印信息即可

testAxios(){
      login({
        
      }).then((res)=>{
        console.log(res)
      })
    }

标签:function,axios,封装,请求,get,vue,params,工程化
From: https://blog.csdn.net/qq_44849312/article/details/141264750

相关文章

  • JAVA毕业设计161—基于Java+Springboot+vue+微信小程序的校园论坛二手闲置系统(源代码
    毕设所有选题:https://blog.csdn.net/2303_76227485/article/details/131104075基于Java+Springboot+vue+微信小程序的校园论坛二手闲置系统(源代码+数据库+万字论文)161一、系统介绍本项目前后端分离带小程序,分为用户、管理员两种角色,可自行分配角色菜单1、用户:注册、......
  • java+vue计算机毕设基于WEB的新能源汽车充电预约系统66iq9【源码+开题+论文】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着全球对环境保护意识的增强及可持续发展战略的深入实施,新能源汽车作为减少碳排放、促进绿色出行的重要载体,其普及率正迅速提升。然而,新能源汽车的......
  • java+vue计算机毕设基于web的流浪宠物救助系统【源码+开题+论文】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着城市化进程的加速,流浪宠物问题日益凸显,成为城市管理中不容忽视的一环。在快节奏的现代生活中,许多宠物因各种原因被遗弃,流浪街头,面临着生存困境和......
  • java+vue计算机毕设基于web的电竞社信息管理系统的设计与实现【源码+开题+论文】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着电子竞技产业的迅猛发展,电竞社作为连接电竞爱好者与赛事活动的桥梁,其重要性日益凸显。然而,传统的管理方式往往依赖于人工记录与沟通,不仅效率低下,......
  • Vue侦听器
    当我们挂载内部的绑定数据发生变化,如果我们向需要执行一些处理程序才处理业务逻辑就可以使用vue的侦听器watch属性。这个需要添加watch配置项。<divid="app"><p>我的名字是:{{name}}</p><inputtype="text"v-model="firstName"><inputtype=......
  • springboot+vue餐厅快捷就餐系统【程序+论文+开题】-计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着城市化进程的加速与人们生活节奏的日益加快,餐饮业作为服务行业的重要组成部分,面临着前所未有的挑战与机遇。传统餐厅的就餐模式往往存在排队时间长、点餐效率低、座位管理混乱等问题,严重影响了顾客的用餐体验。在此背景下,开发一套......
  • springboot+vue餐厅管理系统【程序+论文+开题】-计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着餐饮行业的蓬勃发展,餐厅管理面临着前所未有的挑战。传统的人工管理模式已难以满足现代餐厅高效、精准、个性化的服务需求。顾客对就餐体验的要求日益提升,包括预订系统的便捷性、餐桌安排的合理性、美食推荐的个性化等,均成为餐厅提......
  • springboot+vue菜鸟驿站存取件管理系统设计与实现【程序+论文+开题】-计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着电子商务的迅猛发展,快递业务量急剧增长,快递“最后一公里”的配送问题日益凸显。传统的人工配送方式不仅效率低下,且成本高昂,难以满足消费者日益增长的便捷、快速、安全的服务需求。菜鸟驿站作为阿里巴巴旗下的物流服务平台,通过整合......
  • springboot+vue财务报销管理系统【程序+论文+开题】-计算机毕业设计
    系统程序文件列表开题报告内容研究背景随着企业规模的不断扩大与业务复杂度的日益提升,传统的财务报销管理方式逐渐暴露出效率低下、流程繁琐、审批周期长、信息透明度不足等问题。在数字化转型的大潮中,构建一套高效、智能的财务报销管理系统成为企业优化财务管理流程、提升......
  • md-editor-v3适配VUE3的MarkDown编辑器-好用-简单-免费
     官方文档:https://imzbf.github.io/md-editor-v3/zh-CN/indexhttps://imzbf.github.io/md-editor-v3/zh-CN/index效果演示:(支持黑暗模式切换)toolbar包括:['bold','underline','italic','strikeThrough','title',......