在某视频剪辑软件中最常用的应该就是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的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。