vue3 封装axios
1添加一个新的 http.js文件 封装axios
引入axios
//引入Axios
import axios from 'axios'
定义一个根地址
//视你自己的接口地址而定
var root2 = 'http://121.4.63.196:8520/api'
定义个小函数来统一参数格式(可写可不写,自己随意)

//参数过滤(去空白)
function filterNull(o) {
for (var key in o) {
if (o[key] === null) {
delete o[key]
}
//字符串,对象,数组
if (typeof (o[key]) === 'string') {
o[key] = o[key].trim()
} else if (typeof (o[key] === 'object')) {
alert(o[key]);
o[key] = filterNull(o[key])
} else if (typeof (o[key]) === 'array') {
o[key] = filterNull(o[key])
}
}
return o
}
参数过滤(去空白)
接口处理:重头戏
//接口处理函数
function apiAxios(method, url, params, success) {
//整理参数
if (params) {
params = filterNull(params)
console.log(params);
}
axios({
method: method,
url: url,
data: method === 'post' || method === 'put' ? params : null,
params: method === 'get' || method === 'delete' ? params : null,
headers: {
//'Content-Type':'application/json'
},
baseURL: root2,
withCredentials: false
}).then(function (res) {
if (res.State && res.Code) {
}
}).catch(function (error) {
let res = error.response
if (error) {
console.log('API错误:' + res.State);
}
})
}
导出给vue组件使用
//返回在vue模板中调用的接口
export default ({
get: function (url, params, success, failure) {
return apiAxios('get', url, params, success, failure);
},
post: function (url, params, success, failure) {
return apiAxios('post', url, params, success, failure);
},
put: function (url, params, success, failure) {
return apiAxios('put', url, params, success, failure);
},
delete: function (url, params, success, failure) {
return apiAxios('delete', url, params, success, failure);
}
})
main.js里面如何使用:
//引入接口文件
import api from './api/http.js' var app=createApp(App)
app.use(routers)
//绑定给全局使用 $api可以随便定义 例如 $http $a $b 随喜好
app.config.globalProperties.$api=api
app.vue里面使用
this.$api.post('/AutoCode/SendEmail163', { 'email': this.email },r=>{
this.email2=r.message
});
vue3 封装axios的更多相关文章
- 【转】Vue 2.0封装axios笔记
前言 单页面应用大多采用前后端分离开发思路,我们知道,前端和后端交互有多中方式(服务器端渲染.Ajax.websocket等),今天我们主要讲解Ajax部分. 最近团队讨论了一下,Ajax 本身跟 V ...
- Vue笔记:封装 axios 为插件使用
前言 自从Vue2.0推荐大家使用 axios 开始,axios 被越来越多的人所了解.使用axios发起一个请求对大家来说是比较简单的事情,但是axios没有进行封装复用,项目越来越大,引起的代码冗 ...
- 封装axios方法之一
一.先来说说为什么要封装axios异步请求. 我们前端开发中总是会遇到跨域的问题,我们会配置proxy来解决跨域的问题,无论是vue 还是react. 如何配置我这里就不说了. 然后...然后我们就会 ...
- vue 封装axios以及使用中间代理 proxy
为什么需要封装呢?主要是为了更好管理项目以及增加复用性 1.首先在src文件夹下创建api文件夹 . utils文件夹 . server文件夹 api:创建一个index.js文件 用来存放接口地 ...
- 15、vue项目封装axios并访问接口
1.在src下新建util文件夹,在util下新建request.js文件: 封装axios: import axios from 'axios' import QS from 'qs'; // im ...
- Vue中封装axios
参考: https://www.jianshu.com/p/7a9fbcbb1114 https://www.cnblogs.com/dreamcc/p/10752604.html 一.安装axios ...
- Vue 封装axios(四种请求)及相关介绍(十三)
Vue 封装axios(四种请求)及相关介绍 首先axios是基于promise的http库 promise是什么? 1.主要用于异步计算 2.可以将异步操作队列化,按照期望的顺序执行,返回符合预期的 ...
- 创建Vue项目及封装axios
1. 始vue化项目 https://www.cnblogs.com/xiaonq/p/11027880.html vue init webpack deaxios # 使用脚手架创建项目 deaxi ...
- 封装axios在util中
创建util工具类,封装通用的get和post请求 封装axios成工具类,方便大家请求调用 1.创建util文件夹 2.创建request.js 3.封装 //封装请求相关方法 //初始化一个axi ...
- vue3.0+axios 跨域+封装
封装: 目录结构:src/utils/request.js, 没有就自己建一个 //src/utils/request.jsimport axios from 'axios' import { Mes ...
随机推荐
- NIO和传统IO
传统 IO 基于字节流或字符流(如 FileInputStream.BufferedReader 等)进行文件读写,以及使用 Socket 和 ServerSocket 进行网络传输. NIO 使用通 ...
- Visual Studio 2022只能使用WSL调试问题处理
删除项目的Properties目录下面的launchSettings.json文件
- CF980-Div2-D
CF980-Div2-D 题意 从 \(1\) 开始决策,若选当前数,则累计贡献 \(a[i]\) 并跳到 \(j\) 位置,\(j\) 是 \(\lt i\) 且没有决策过(包括选了和没选)的最大位 ...
- ABC 364
ABC 364 E - Maximum Glutton 给定 \((a_i,b_i),X,Y\), 记 \(k\) 是第一个让 \(\sum_{i=1}^{k} a_i > X\) 或 \(\s ...
- 强化学习性能指标之一:以训练的episodes数和训练所需样本数作为评价算法性能的指标
在强化学习领域,一般都是限定训练的episodes数和训练所需样本数的,也就是说在进行算法性能对比的时候各个算法都是在相同的训练的episodes数和训练所需样本数的,但是如果我们在算法得分数保持相同 ...
- docker login 私有仓库时报错
连接私有harbor报错如下: docker login 192.168.1.88 -uadmin -pHarbor12345 WARNING! Using --password via the CL ...
- Windows安装Mysql后一段时间后Mysql服务无法启动的问题
本人在windows重装电脑后遇到一个比较麻烦的问题一直没有解决,今日有幸看到某大佬的博客得以解决.真实万分感激,特来分享一下. 第一次安装Mysql8.0之后,此次安装是将整个mysql包进行安装, ...
- k8s之容器运行时
Kubernetes 中的容器运行时 容器运行时(Container Runtime)是 Kubernetes 最重要的组件之一,负责真正管理镜像和容器的生命周期.Kubelet 通过 Contain ...
- 远程连接Docker服务
背景 本地开发了一个SpringBoot项目,想通过Docker部署起来,我本地是Window10系统,由于某些原因不能虚拟化并且未安装Docker-Desktop,所以我在想有没有办法本地不需要虚拟 ...
- ThreeJs-02Threejs开发入门与调试
这两天没有上传笔记,在解决图床的问题,主打一个白嫖,所以要费点心思,先是用了gitee的图床好不容易配好后发现居然加了防盗链,后面又转了github的咱目前来说github也是最稳定且免费的,现在搞好 ...