,,vue封装axios的几种方法

,,vue封装axios的几种方法

在某视频剪辑软件中最常用的应该就是axios了,这是一个很强大的处理创建交互式、快速动态网页应用的网页开发技术的库。今天我就分享一下我是如何封装axios的axios .的基本美国石油学会(美国石油协会)不再赘述,提前安装一下也不用我说了吧

目录

基础版第一步:配置axios

第二步:封装请求

第三步:使用

进阶版

基础版

第一步:配置axios

首先,创建一个Service.js,这里面存放的时axios的配置以及拦截器等,最后导出一个axios对象。我平常elementUI用的比较多,这里你也可以使用自己的用户界面库。

从" axios "导入axios

从"元素-用户界面"导入{消息,正在加载}

const configbase URL=' https://本地主机:3000/'//默认路径,这里也可以使用包封/包围(动词包围的简写)来判断环境

设loadingInstance=null //这里是装货

//使用创造方法创建axios实例

导出常量服务=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等依赖也随之升级,现在已经可以随心所欲的异步/等待了,因此本次封装就是把之前的承诺升级成为异步等待。首先,还是一样,先封装axios

//Service.js

从" axios "导入axios

const configbase URL=' https://本地主机:3000/'//默认路径,这里也可以使用包封/包围(动词包围的简写)来判断环境

//使用创造方法创建axios实例

导出常量服务=axios。创建({

超时:7000,//请求超时时间

baseURL: ConfigBaseURL,

方法:' post ',

标题:{

内容类型":"应用程序/JSON;charset=UTF-8 '

}

})

//添加请求拦截器

服务。截击机。请求。使用(配置={

返回配置

})

//添加响应拦截器

服务。截击机。回应。使用(response={

//console.log(响应)

返回响应数据

},错误={

退货承诺。拒绝(错误)

})

这时候你就获取了一个axios对象,然后我推荐一个常用的库,主要用于处理异步非同步(异步)时的错误:等待到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’)

}

}

}

/脚本

以上就是某视频剪辑软件封装axios的几种方法的详细内容,更多关于某视频剪辑软件封装axios的资料请关注我们其它相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: