vuex封装axios,vue3.0axios封装
在某视频剪辑软件中最常用的应该就是爱可信了,这是一个很强大的处理创建交互式、快速动态网页应用的网页开发技术的库。今天我就分享一下我是如何封装爱可信的axios .的基本美国石油学会(美国石油协会)不再赘述,提前安装一下也不用我说了吧
目录
基础版第一步:配置爱可信
第二步:封装请求
第三步:使用
进阶版
基础版
第一步:配置axios
首先,创建一个Service.js,这里面存放的时爱可信的配置以及拦截器等,最后导出一个爱可信对象。我平常elementUI用的比较多,这里你也可以使用自己的用户界面库。
从" axios "导入爱可信
从"元素-用户界面"导入{消息,正在加载}
const configbase URL= https://本地主机:3000///默认路径,这里也可以使用包封/包围(动词包围的简写)来判断环境
设loadingInstance=null //这里是装货
//使用创造方法创建爱可信实例
导出常量服务=axios。创建({
超时:7000,//请求超时时间
baseURL: ConfigBaseURL,
方法: post ,
标题:{
内容类型":"应用程序/JSON;charset=UTF-8
}
})
//添加请求拦截器
服务。截击机。请求。使用(配置={
加载实例=加载。服务({
锁:真的,
文本:"正在加载."
})
返回配置
})
//添加响应拦截器
服务。截击机。回应。使用(response={
loadingInstance.close()
//console.log(响应)
返回响应数据
},错误={
console.log(TCL: error ,错误)
常量消息=错误。留言!==未定义?错误。消息:""
消息({
消息: 网络错误味精,
类型:"错误",
时长:3 * 1000
})
loadingInstance.close()
退货承诺。拒绝(错误)
})
具体的拦截器逻辑以具体业务为准,我这里没什么逻辑,只是加了一个全局的装货而已
第二步:封装请求
这里我再创建一个request.js,这里面放的是具体请求。
从""导入{服务} ./服务
导出函数getConfigsByProductId(产品id){
退货服务({
URL:"/manager/getConfigsByProductId ",
参数:{ productId: productId }
})
}
导出函数getAllAndroidPlugins() {
退货服务({
URL:"/manager/getAndroidPlugin ",
方法:"获取"
})
}
导出函数addNewAndroidPlugin(数据){
退货服务({
URL:"/manager/addAndroidPlguin ",
数据:JSON.stringify(数据)
})
}
当然你也可以全球资源定位器(统一资源定位器)再封装一遍,放到另一个文件里,我觉得这样并无什么意义,反而增加复杂度。这里主要注意的是起名问题,建议按功能起名,例如我这里请求方式功能或者内容参数,这样子直接看getConfigsByProductId这个名字也是很清晰明了
第三步:使用
在某视频剪辑软件组件中
从" @/api/request.js "导入{getAllAndroidPlugins,getConfigsByProductId,addNewAndroidPlugin}
getAllAndroidPlugins()。然后(res={
})
全局使用在主页。射流研究…中
从" @/api/Service.js "导入{服务}
Vue.prototype.$axios=Service
进阶版
随着vue cli的升级,core-js\babel等依赖也随之升级,现在已经可以随心所欲的异步/等待了,因此本次封装就是把之前的承诺升级成为异步等待。首先,还是一样,先封装爱可信
//Service.js
从" axios "导入爱可信
const configbase URL= https://本地主机:3000///默认路径,这里也可以使用包封/包围(动词包围的简写)来判断环境
//使用创造方法创建爱可信实例
导出常量服务=axios。创建({
超时:7000,//请求超时时间
baseURL: ConfigBaseURL,
方法: post ,
标题:{
内容类型":"应用程序/JSON;charset=UTF-8
}
})
//添加请求拦截器
服务。截击机。请求。使用(配置={
返回配置
})
//添加响应拦截器
服务。截击机。回应。使用(response={
//console.log(响应)
返回响应数据
},错误={
退货承诺。拒绝(错误)
})
这时候你就获取了一个爱可信对象,然后我推荐一个常用的库,主要用于处理异步非同步(异步)时的错误:等待到js。代码接上面的。
从"等待到js "导入到
导出函数isObj(obj) {
const typeCheck=typeof obj!==未定义类型的obj===object obj!==空
返回typeCheck Object.keys(obj).长度0
}
export async function _get(url,qs,headers) {
常量参数={
url,
方法:“得到”,
params: qs?qs:" "
}
if(headers){ params。标题=标题}
const [err,res]=await to(Service(params))
如果(!err res) {
返回资源
}否则{
返回console.log(错误)
}
}
封装得到时只需要考虑参数,使用等待到射流研究…去捕获等待时的错误,只在成功时返回数据,错误时就会走拦截器。
export async function _get(url,qs,headers) {
常量参数={
url,
方法:“得到”,
params: isObj(qs)?qs : {}
}
if(isObj(headers)){ params。标题=标题}
const [err,res]=await to(Service(params))
如果(!err res) {
返回资源
}否则{
返回console.log(错误)
}
}
这是我封装的邮政
导出异步函数_post(url、qs、body) {
常量参数={
url,
方法: post ,
params: isObj(qs)?qs : {},
数据:isObj(身体)?正文:{}
}
const [err,res]=await to(Service(params))
如果(!err res) {
返回资源
}否则{
返回console.log(错误)
}
}
使用的时候可以直接引入,也可以多次封装
//a.vue
srcipt
improt { _ get }来自./服务
导出默认值{
方法:{
异步测试(){
const RES=await _ get( http://百度。com’)
}
}
}
/脚本
以上就是某视频剪辑软件封装爱可信的几种方法的详细内容,更多关于某视频剪辑软件封装爱可信的资料请关注我们其它相关文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。