首页 > 其他分享 >axios的二次封装(详解)

axios的二次封装(详解)

时间:2023-04-18 09:44:06浏览次数:37  
标签:axios 封装 请求 api params const 详解

一.首先让我们了解一下为什么要对axios进行二次封装?

1,代码封装,重用性高,减少代码量,减低维护难度。

2,统一处理一些常规的问题一劳永逸,如http错误。

3,拦截请求和响应,提前对数据进行处理,如获取token,修改配置项。

 

安装axios

npm下载

npm install axios

下载完成之后在main.js中全局引入

import axios from 'axios'
Vue.prototype.$axios = axios

在src下创建出一个新的文件夹 http

在http文件夹下创建一个新的api.js文件

//对axios进行二次封装,将刚才下载好的axios导入进来
import axios from "axios";
 
 
//2. 利用axios对象的方法create,去创建一个axios实例
//requests就是axios,只不过稍微配置一下
 
const api = axios.create({
    //基础路径
    baseURL: '', // 所有请求的公共地址部分
    timeout: 3000 // 请求超时时间,这里的意思是当请求时间超过5秒还未取得结果时,提示用户请求超时
})
 
 
// 请求拦截处理 请求拦截 在请求拦截中可以补充请求相关的配置
// interceptors axios的拦截器对象
api.interceptors.request.use(config => {
    // config 请求的所有信息
    // console.log(config);
    // 响应成功的返回
    return config // 将配置完成的config对象返回出去 如果不返回 请求讲不会进行
}, err => {
    // 请求发生错误时的相关处理 抛出错误
    //  //响应失败的返回
    Promise.reject(err)
})
 
 
//响应拦截处理  响应拦截器:包含两个函数(一个是成功返回的函数,一个是失败的返回的函数)
api.interceptors.response.use(res => {
    // 我们一般在这里处理,请求成功后的错误状态码 例如状态码是500,404,403
    // res 是所有相应的信息
    console.log(res)
    return res.data
}, err => {
    // 服务器响应发生错误时的处理
    Promise.reject(err)
})
 
 
 
//最后一步 暴露出去实例导出
export default api

在http文件夹在创建一个 axios.js文件  用来封装请求接口 

// // 引入 封装的api 
import api from './api.js';
 
//下面是简写的形式
// getXXX 自定义的接口名字
export const getXXX = () => api.get('/getXXX ');
 
// export const getXXX = (params) => api.get(`/apigb/v1/component`, { params})
// export const postXXX = (params) => api.post(`/apigb/v1/component/update-info`, params)
 
 
// // 下面是详细的写法
// export const xxxx = (params) => api({
//     url: '', // 请求地址
//     method: 'post', // 请求方式
//     // data: params, // (一般post请求,我们习惯使用 data属性来传参)
//     params: params //(一般get请求,我们习惯使用params属性来传参)
//     // 注意:data,和 params 两个属性传参使用,并不是固定的,也可以调换使用。
// })
 

最后就可以在组件中引入使用了 

//在使用的组建中载入
// banner 自定义接口的名字
import { banner } from "../http/axios.js";

 

标签:axios,封装,请求,api,params,const,详解
From: https://www.cnblogs.com/ZhuAo/p/17328457.html

相关文章

  • (转载)Transfer-Encoding:chunked详解
    原文链接:Transfer-Encoding:chunked详解_transfer-encoding:chunked_公众号:流花鬼的博客-CSDN博客概念分块传输编码(Chunkedtransferencoding)是超文本传输协议(HTTP)中的一种数据传输机制,允许HTTP由网页服务器发送给客户端应用(通常是网页浏览器)的数据可以分成多个部分。分块......
  • 【进阶13】【自学笔记】Python logging模块封装
    一、定义  Pythonlogging模块是一个可以通过控制日志级别、输出位置等方式来实现记录日志的模块。logger对象的不同方法来记录不同级别的日志。  其中,debug()方法用于记录debug级别的日志,info()方法用于记录info级别的日志,warning()方法用于记录warning级别的日志,err......
  • 【攻防世界逆向】难度3引导题Insanity详解
    是一道非常简单的题目题目insanity解法一先用exeinfo打开看一下ELF文件,,接触的比较少,但好像可以用linux打开看,先IDA试试有main函数,看起来相当简单,想要看看strings直接找到flag,填入,正确解法二最近下了个kali,拿它试了一试,也是查看字符串指令也找到了flag附这题确实是......
  • ffmpeg可支持的编码器、解码器、封装格式、网络协议
    {ffmpeg可支持的编码器./configure--list-encodersffmpeg可支持的解码器./configure--list-decodersffmpeg可支持的封装格式./configure--list-muxersffmpeg可支持的解封装格式./configure--list-demuxersffmpeg可支持的网络协议./configure--list-protocols查看......
  • easysysprep4封装教程,自己封装系统
    本教程详细介绍如何使用easysysprep4进行封装系统的详细介绍。本教程分三个部分。easysysprep4封装教程上打开easysysprep4看到如下图这里只是显示了当前系统信息,以及easysysprep4设置的封装模式。我们点击“开始”进入下一步来到这里信息相对于图一信息量增加了很多,下面我们进行详......
  • Spring 教程—REST 客户端详解
    Spring框架为调用REST端点提供了以下选择:WebClient -非阻塞、响应式客户端和fluentAPI。RestTemplate -带有模板方法API的同步客户端。HTTP接口 -注解式接口,并生成动态代理实现。一、 WebClientWebClient 是一个非阻塞的、响应式的客户端,用于执行HTTP请求。它在5.0中引......
  • axios
    axios使用参考:http://www.axios-js.com/zh-cn/docs/index.html#axios-API定时:https://blog.csdn.net/weixin_43574035/article/details/126233221......
  • Ez Forensics详解
    EzForensics详解题目要求:数据库版本+字符集格式+最长列名示例:NSSCTF步骤:解压压缩包得到forensics.vmdk,.vmdk是虚拟机磁盘文件的元数据文件可以用美亚的取证大师直接导入自动分析,也可以使用diskgenius挂载有四个压缩包,其中3.zip被删除了在丢失文件中可以找到也......
  • Kubernetes(k8s)健康检查详解与实战演示(就绪性探针 和 存活性探针)
    一、概述Kubernetes中的健康检查主要使用就绪性探针(readinessProbes)和存活性探针(livenessProbes)来实现,service即为负载均衡,k8s保证service后面的pod都可用,是k8s中自愈能力的主要手段,主要基于这两种探测机制,可以实现如下需求:异常实例自动剔除,并重启新实例多种类型探针检......
  • 【迭代器设计模式详解】C/Java/JS/Go/Python/TS不同语言实现
    简介迭代器模式(IteratorPattern),是一种结构型设计模式。给数据对象构建一套按顺序访问集合对象元素的方式,而不需要知道数据对象的底层表示。迭代器模式是与集合共存的,我们只要实现一个集合,就需要同时提供这个集合的迭代器,就像Java中的Collection,List、Set、Map等,这些集合都有自......