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 ...
随机推荐
- 报名开启|QKE 容器引擎托管版暨容器生态发布会!
当下,"云原生"技术红利正吞噬旧秩序,重塑新世界. 但您的企业是否依然困惑:缺少运维人员或运维团队,想要专注于业务的开发,又不得不兼顾集群的日常运维:在生产环境中,为了保证业务的高 ...
- Python实现火柴人的设计与实现
1.引言 火柴人(Stick Figure)是一种极简风格的图形,通常由简单的线段和圆圈组成,却能生动地表达人物的姿态和动作.火柴人不仅广泛应用于动画.漫画和涂鸦中,还可以作为图形学.人工智能等领域的 ...
- Bitmap 和 布隆过滤器傻傻分不清?你这不应该啊
大家好,我是小富- 有个兄弟私下跟我说,他在面试狗东时,有一道面试题没回答上来:Redis 的Bitmap和布隆过滤器啥区别与关系? 其实就是考小老弟对这两种工具的底层数据结构是否了解,不算太难的题. ...
- 在浏览器输入 URL 回车之后发生了什么(流程图,超详细版)
前言 这个问题已经是老生常谈了,更是经常被作为面试的压轴题出现,网上也有很多文章,但最近闲的无聊,然后就自己做了一篇笔记,感觉比之前理解更透彻了. 这篇笔记是我这两天看了数十篇文章总结出来的,所以相对 ...
- Redhat 7安装Oracle 11.2.0.4 RAC 数据库软件中报错:Error in invoking target 'agent nmhs' of makefile
环境:Redhat Linux 7.6 + Oracle 11.2.0.4 RAC 现象:图像化安装数据库软件过程中的86%时,报错. 1. 具体现象 2. 定位问题 3. 解决问题 1. 具体现象 ...
- Django运行服务报NameError: name ‘os‘ is not defined
出现Bug: 原因:这里调用了os模块,但是文件头并没引用os模块 解决办法:在settings.py文件头加上:
- C语言模拟算法
文章目录 1.数据结构 1.1基于数组 1.2 基于字符串 1.3基于链表 1.4基于矩阵 2.算法技巧 2.1.排序 2.2.递归 2.3.迭代 3.实战 3.1 力扣面试题16.01 交换数字 3 ...
- python语言中三个奇妙的返回值
从公众号看到的,记录下 d = {} d[5] = "test1" d[5.0] = "test2" d["5"] = "test ...
- 全面解释人工智能LLM模型的真实工作原理(完结)
前一篇:<全面解释人工智能LLM模型的真实工作原理(三)> 序言: 本节作为整篇的收官之作,自然少不了与当今最先进的AI模型相呼应.这里我们将简单介绍全球首家推动人工智能生成人类语言的公司 ...
- python中os模块的方法总结
#返回当前的工作目录os.getcwd #print(os.getcwd()) #改变一个目录 chdir(path) #列出所有的文件或者目录 listdir(path) #print(os.lis ...