首页 > 其他分享 >Axios三层封装

Axios三层封装

时间:2023-05-31 11:45:42浏览次数:60  
标签:axios 封装 checkLogin js Axios api return 三层

Axios三层封装

在实际项目中axios都是要经过封装再使用的,企业级项目一般都是三层封装

1. 工具函数层

对axios工具进行增强,如:设置公共的请求服务器、设置请求拦截器、设置响应拦截器…

  1. 创建一个文件夹utils,用来放axios。
  2. 创建文件,随便取名,这里我取request.js
  3. 引入
import axios from "axios";
  1. 设置公共服务器路径
axios.defaults.baseURL = 'https://api.example.com';
  1. 暴露改造过后的axios
export default axios

2. 接口函数层

对项目所有的接口进行封装,项目接口有任何的改动只需要改这样一层就可以了。

  1. 创建一个文件夹,比如api。里面分模块创建不同api接口,方便管理。
  • 不同模块就要使用不同的api,所以要根据需要决定封装多少个模块
  • 比如登录是一个模块,就用login.js,获取用户信息是一个,用userInfor.js
// 引入增强后的axios。名字可以取别的,不一定要是axios。
import axios from '@/utils/request.js'
// 登陆模块的接口函数,这里要将axios执行后的promise对象return出去
export const checkLogin = (data) => {
    // 因为要返回promise对象,所以一定有写return!!
    return axios({
        method: 'post',
        url: '/users/checkLogin',
        data, // 要传的参数就用型参。
    });
}

3. 应用层

在实际项目页面中使用接口函数。

  1. 引入
    因为上面是普通暴露,所以必须要解构出来
// 引入发送数据请求的api
import { checkLogin } from "@/api/user.js";
  1. 使用checkLogin要传入参数。
// 点击登录
    jump() {
      // 进行表单验证,因为是异步,所以async修饰。
      this.$refs.form.validate(async valid => {
        if (valid) {
          // 等待验证结果
          let res = await checkLogin(this.form);
          console.log(res); //输出结果。
        } else {
          return false;
        }
      });
    }

标签:axios,封装,checkLogin,js,Axios,api,return,三层
From: https://www.cnblogs.com/lyc00000000/p/17445660.html

相关文章

  • WebClient发送get、post请求(form、json)(功能封装)
    1.情景展示Spring3.0引入了RestTemplate,但是在后来的官方源码中介绍,RestTemplate有可能在未来的版本中被弃用,所谓替代RestTemplate,在Spring5中引入了WebClient作为非阻塞式ReactiveHttp客户端。WebClient处理单个HTTP请求的响应时长并不比RestTemplate更快,但是它处理并发的能......
  • 1688API商品详情页数据,接口封装
    首先,大家要到官方主页去申请一个 appkey,这个是做什么用的呢?AppKey是应用的唯一标识,TOP通过AppKey来鉴别应用的身份。AppSecret是TOP给应用分配的密钥,开发者需要妥善保存这个密钥,这个密钥用来保证应用来源的的可靠性,防止被伪造。就是说嘛,想要进门可要先有钥匙啊,所以,appke......
  • 拼多多商品详情接口(封装代码)
    一、使用拼多多商品接口可以获取拼多多商品详情。下面是获取商品详情的基本步骤和代码详解。1.注册账号并创建应用,获取API访问权限和密钥。2.根据API文档了解所需的参数和返回结果,构造请求参数和签名。其中,需要特别注意的是签名的生成方法,必须按照规定的方法进行,否则会导......
  • 2.4. 封装与访问控制
    封装(Encapsulation)是面向对象编程的一个核心概念,它意味着将数据(属性)和方法(操作数据的函数)捆绑在一起,形成一个类(Class)。封装的目的是将数据和操作数据的方法隐藏起来,以防止外部对数据的直接访问。这样,我们就可以通过定义公共接口(PublicInterface)来控制外部对类的访问,提高代码的可维......
  • java之封装
    封装:将属性和方法封装为一个整体,属性和方法都有权限限制classPerson{privateintage;//私有属性,只能在本类中访问publicvoidsetAge(intage){if(age<0||age>200)age=0;else{this.age=age;......
  • ASEMI单向可控硅BT151参数,BT151封装,BT151体积
    编辑-Z单向可控硅BT151参数:型号:BT151存储接点温度范围Tstg:-40~150℃工作接点温度范围Tj:-40~125℃断态重复峰值电压VDRM:650V重复峰值反向电压VRRM:650VRMS导通电流IT(RMS):12A非重复浪涌峰值导通电流ITSM:120A峰值栅极电流IGM:2A平均栅极功耗PG(AV):0.5W峰值栅极功率PGM:5WIGT:4mAVGT:0.75VV......
  • ASEMI单向可控硅BT151参数,BT151封装,BT151体积
    编辑-Z单向可控硅BT151参数:型号:BT151存储接点温度范围Tstg:-40~150℃工作接点温度范围Tj:-40~125℃断态重复峰值电压VDRM:650V重复峰值反向电压VRRM:650VRMS导通电流IT(RMS):12A非重复浪涌峰值导通电流ITSM:120A峰值栅极电流IGM:2A平均栅极功耗PG(AV):0.5W峰值栅极功率PGM:5WIG......
  • axios 或 @nestjs/axios 错误地应用 npm config proxy
    npmproxy$npmconfiggetproxyhttp://127.0.0.1:25378/如果你的npm设置了如上代理,那么当请求本地服务时,应该会出现代理错误(通常是502响应):import{HttpService}from'@nestjs/axios';@Injectable()exportclassForwardService{@Inject()privatereadonlyhtt......
  • vue对kindeditor进行封装以及使用
    下载kindeditor后需要使用的文件如下(其他没用到的可删除)封装成组件以及自定义上传插件上传图片后生成image标签插入上传文件后生成下载a链接插入<template><divclass="kindeditor-component"><inputid="file-input"style="display:none"type="file"&g......
  • 将ajax请求封装到jQuery库当中
    1. 手动把ajax封装到js库  28代码在com.bjpowernode.ajax.servletAjaxRequest10Servletpackagecom.bjpowernode.ajax.servlet;importjakarta.servlet.ServletException;importjakarta.servlet.annotation.WebServlet;importjakarta.servlet.http.HttpServlet;importja......