午夜勾魂曲-午夜福利自怕-午夜福利在线观看6080-午夜福利院电影-国产精品毛片AV久久97-国产精品麻豆高潮刺激A片

uni-app uni.request接口封裝

2020-4-9    seo達人

uni-app uni.request接口封裝

今天在做uni-app項目時,發(fā)現(xiàn)在uni-app中 調(diào)取后臺接口需要大量的重復(fù)編輯,就在想能不能封裝一個如同Vue項目中的this.$axios.get(url,data).then();格式,這樣就減少了很多代碼重復(fù)!!

封裝為如同this.$axios.get(url,data).then();格式

第一步、

我們先在index首頁中的組件部分,創(chuàng)建一個js文件;





第二步、

我們在uni-app的入口文件中引入request.js文件;

在入口文件中掛載到uni-app實例上;





第三步、

開始接口封裝:

(以下為js文件代碼)



//先把接口暴露出去

export default{

//我們先定一個uni-app方法 以便于以下操作使用uni-app調(diào)取接口時便利

request(options){

///我們使用Promise方法來實現(xiàn)調(diào)用接口時后面多個.then()的方法

//只有Promise能實現(xiàn)如同$axios后面連續(xù)多個.then()的方法

return new Promise((reslove,reject)=>{

uni.request({

...options,

success:res=>{

//判斷我們在使用封裝的自定義時第三個參數(shù)是否為native

//當(dāng)native為true時 我們返回原數(shù)據(jù)

if(options.native){

reslove(res)

}

//當(dāng)native為false時 我們直接返回data中的數(shù)據(jù)

if(res.statusCode === 200){

reslove(res.data)

}else{

//加入接口參數(shù)錯誤或接口地址錯誤時 我們返回原錯誤提示

reject(res)

}

}

})

})

},

//在方法中 第二個參數(shù)和第三個參數(shù)用ES6新語法來添加默認值

//接口調(diào)取get方法

get(url,data={},options={}){

//我們把傳過來的參數(shù)賦給options,這樣我們在使用uni-app

//this.request()方法時 傳遞一個參數(shù)就可以

options.url = url;

options.data = data;

options.method = 'get';

//調(diào)用上面自己定義的this.request()方法傳遞參數(shù)

return this.request(options)

},

//接口調(diào)取post方法

post(url,data={},options={}){

options.url = url;

options.data = data;

options.method = 'post';

return this.request(options)

}

}



這樣我們就已經(jīng)封裝完成啦,接下來就是 在頁面內(nèi)使用!

第四步、

我們可以在頁面中來調(diào)取已經(jīng)封裝好的自定義事件啦



例一:

個人建議使用ES6新語法 箭頭函數(shù) 不然使用this還要重新在外面聲明定義,太麻煩了,使用箭頭函數(shù)就會方便很多



// 已封裝好的接口方法

//本案例調(diào)取接口時 沒有參數(shù)上傳 直接調(diào)用的

//這樣使用方法時只傳遞了一個參數(shù),也就是接口地址

//第二個參數(shù)沒有寫,默認為空;假如有參數(shù)的話 可以直接填寫

//后面的參數(shù)都為接口內(nèi)已經(jīng)定義好的默認值:{}空對象

//里面的res為接口返回數(shù)據(jù)中的data里面的內(nèi)容

this.$H.get('/api/getIndexCarousel.jsp').then(res=>{

//res打印出來是接口返回數(shù)據(jù)中data里面的數(shù)據(jù)

console.log(res)

//賦給數(shù)據(jù)區(qū)的變量,方便本頁面使用

this.swiperData = res

});



例二、



// 已封裝好的接口方法

//本案例使用時 傳遞了三個參數(shù)

//第一個為:接口地址

//第二個為:調(diào)取接口傳遞的參數(shù),方法使用時不用傳參,寫空對象就好

//第三個為:自定義事件中 native 的屬性 若為true 則返回原數(shù)據(jù)

//若想返回原數(shù)據(jù),必須要填寫第二個參數(shù),若沒有參數(shù),也要寫空對象

//因為方法調(diào)用時 是按照傳參順序調(diào)用的,若不寫 參數(shù)傳遞就會出錯

this.$H.get('/api/getIndexCarousel.jsp',{},{

native:true

}).then(res=>{

//res打印出來的數(shù)據(jù)是接口返回來的原數(shù)據(jù)

console.log(res)

//賦給數(shù)據(jù)區(qū)的變量,方便本頁面使用

this.swiperData = res

});




日歷

鏈接

個人資料

藍藍設(shè)計的小編 http://m.gerard.com.cn

存檔

主站蜘蛛池模板: 无码AV免费精品一区二区三区 | 亚洲成人一区二区 | 亚洲日本国产综合高清 | 亚洲色欲色欲WWW在线丝 | 午夜福利不卡片在线播放免费 | z00兽200俄罗斯 | 国产AV国片精品无套内谢无码 | 年轻夫妇韩剧中文版免费观看 | 久久永久视频 | 色婷婷AV99XX| 一边吃奶一边啪啪真舒服 | 亲嘴扒胸摸屁股视频免费网站 | 日韩成人黄色 | 夜色帮首页 | 乌克兰少妇大胆大BBW | 三叶草未满十八岁 | 97精品少妇偷拍蜜桃AV | 成人免费一级毛片在线播放视频 | 草民电影网午夜伦理电影网 | 国产免费阿v精品视频网址 国产免费69成人精品视频 | 国产精品www视频免费看 | 十九禁啊啪射视频在线观看 | 51国产偷自视频在线视频播放 | 成人18视频在线观看 | 在线观看视频中文字幕 | 美女被爆插 | 午夜福利电影网站鲁片大全 | 成年女人免费播放影院 | 精品国产在线亚洲欧美 | 亚洲高清中文字幕免费 | 一级特黄aa大片欧美 | 欧美69xxx| 亚洲精品乱码8久久久久久日本 | 欧美精品3atv一区二区三区 | 天美传媒在线观看完整高清 | 中文在线无码高潮潮喷在线 | 伊人久久大香线蕉资源 | 国产VA精品午夜福利视频 | 亚洲精品乱码电影在线观看 | 草久热的视频在线观看 | 小小水蜜桃免费影院 |