mpvue中使用flyjs全局?jǐn)r截的實(shí)現(xiàn)代碼
我們安裝好flyio之后
npm install flyio
找到src目錄下的main.js文件
首先引入flyjs并實(shí)例化
var Fly=require("flyio/dist/npm/wx")
var fly=new Fly
比方說我們每次請(qǐng)求我們自己的服務(wù)器接口的時(shí)候需要帶上appID,用戶登陸后需要帶上openId
// 請(qǐng)求攔截
fly.interceptors.request.use((request)=>{
request.body.appId = 'xxx'
// 用戶的openId在獲取之后添加到全局變量中如果存在,我們將它添加到請(qǐng)求參數(shù)里面
let openId = Vue.prototype.globalData.openId;
if(openId){
request.body.openId = openId
}
})
當(dāng)服務(wù)器發(fā)生錯(cuò)誤,或者用戶網(wǎng)絡(luò)錯(cuò)誤導(dǎo)致請(qǐng)求失敗的時(shí)候,我們可以添加一個(gè)響應(yīng)攔截
// 響應(yīng)攔截
fly.interceptors.response.use(
(response) => {
},
(err) => {
//發(fā)生網(wǎng)絡(luò)錯(cuò)誤后會(huì)走到這里
//return Promise.resolve("ssss")
wx.hideLoading();
wx.showToast({
title:'網(wǎng)絡(luò)不流暢,請(qǐng)稍后再試!',
icon:'none',
});
})
最后將flyjs掛載到vue的原型上
// 將fly掛載在Vue的原型上 Vue.prototype.$flyio = fly
不同頁面直接使用this.$flyio請(qǐng)求(是不是很方便)
示例:
fly里面的攔截機(jī)制還是很強(qiáng)大的,并且在錯(cuò)誤返回信息做了優(yōu)化處理,在fly攔截器中支持執(zhí)行異步任務(wù),就是說在請(qǐng)求數(shù)據(jù)的時(shí)候如果攔截到token不存在那么我們就可以在攔截器中重新獲取token,再接著執(zhí)行之前的請(qǐng)求。
const Fly = require("flyio/dist/npm/wx")
const fly = new Fly
Vue.prototype.$http = fly;
fly.interceptors.request.use((request) => {
//給所有請(qǐng)求添加自定義header
if (api.Get('token')) {
request.timeout = 30000,
request.headers = {
"content-type": "application/json",
"cld.stats.page_entry": api.Get('scene'),
"version": store.state.version,
"token": api.Get('token')
}
wx.showLoading({
title: "加載中",
mask: true,
});
return request;
} else {
fly.lock();//鎖住請(qǐng)求
return Public.Load().then(res => {
request.timeout = 30000,
request.headers = {
"content-type": "application/json",
"cld.stats.page_entry": api.Get('scene'),
"version": store.state.version,
"token": api.Get('token')
}
wx.showLoading({
title: "加載中",
mask: true,
});
//等待token返回之后在解鎖,
fly.unlock();
return request;//繼續(xù)之前的請(qǐng)求,
})
}
})
fly.interceptors.response.use(
(response) => {
wx.hideLoading();
return response
},
(err) => {
wx.hideLoading();
if (err.status == 0) {
return "網(wǎng)絡(luò)連接異常"
} else if (err.status == 1) {
return "網(wǎng)絡(luò)連接超時(shí)"
} else if (err.status == 401) {
return "用戶未登錄"
} else {
if (err.response.data.message) {
return err.response.data.message
} else {
return '請(qǐng)求數(shù)據(jù)失敗,請(qǐng)稍后再試'
}
};
// Do something with response error
}
)
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- mpvue寫一個(gè)CPASS小程序的示例
- 解決mpvue + vuex 開發(fā)微信小程序vuex輔助函數(shù)mapState、mapGetters不可用問題
- mpvue跳轉(zhuǎn)頁面及注意事項(xiàng)
- mpvue小程序仿qq左滑置頂刪除組件
- 詳解使用mpvue開發(fā)github小程序總結(jié)
- 詳解mpvue開發(fā)小程序小總結(jié)
- mpvue 如何使用騰訊視頻插件的方法
- 淺談使用mpvue開發(fā)小程序需要注意和了解的知識(shí)點(diǎn)
- mpvue構(gòu)建小程序的方法(步驟+地址)
- 基于mpvue的小程序項(xiàng)目搭建的步驟
- 詳解基于mpvue的小程序markdown適配解決方案
- 使用Vue.js開發(fā)微信小程序開源框架mpvue解析
- mpvue中配置vuex并持久化到本地Storage圖文教程解析
相關(guān)文章
vue 實(shí)現(xiàn)動(dòng)態(tài)路由的方法
這篇文章主要介紹了vue 實(shí)現(xiàn)動(dòng)態(tài)路由的方法,文中示例代碼非常詳細(xì),幫助大家更好的理解和學(xué)習(xí),感興趣的朋友可以了解下2020-07-07
解決新建一個(gè)vue項(xiàng)目過程中遇到的問題
這篇文章主要介紹了解決新建一個(gè)vue項(xiàng)目過程中遇到的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-10-10
Vue.js實(shí)戰(zhàn)之通過監(jiān)聽滾動(dòng)事件實(shí)現(xiàn)動(dòng)態(tài)錨點(diǎn)
監(jiān)聽事件是我們?cè)谑褂胿ue.js的時(shí)候經(jīng)常使用的一個(gè)功能,下面這篇文章主要介紹了Vue.js實(shí)戰(zhàn)之通過監(jiān)聽滾動(dòng)事件實(shí)現(xiàn)動(dòng)態(tài)錨點(diǎn) 的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),相信對(duì)大家具有一定的參考價(jià)值,需要的朋友們下面來一起看看吧。2017-04-04
vue移動(dòng)端實(shí)現(xiàn)手機(jī)左右滑動(dòng)入場(chǎng)動(dòng)畫
這篇文章主要為大家詳細(xì)介紹了vue移動(dòng)端實(shí)現(xiàn)手機(jī)左右滑動(dòng)入場(chǎng)動(dòng)畫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2019-08-08
vue改變對(duì)象或數(shù)組時(shí)的刷新機(jī)制的方法總結(jié)
這篇文章主要介紹了vue改變對(duì)象或數(shù)組時(shí)的刷新機(jī)制的方法總結(jié),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2019-04-04
vue動(dòng)畫—通過鉤子函數(shù)實(shí)現(xiàn)半場(chǎng)動(dòng)畫操作
這篇文章主要介紹了vue動(dòng)畫—通過鉤子函數(shù)實(shí)現(xiàn)半場(chǎng)動(dòng)畫操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-08-08
Vue實(shí)現(xiàn)購(gòu)物小球拋物線的方法實(shí)例
這篇文章主要給大家介紹了Vue實(shí)現(xiàn)購(gòu)物小球拋物線的方法實(shí)例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2020-11-11
vue?長(zhǎng)列表數(shù)據(jù)刷新的實(shí)現(xiàn)及思考
這篇文章主要為大家介紹了vue?長(zhǎng)列表數(shù)據(jù)刷新的實(shí)現(xiàn)及思考,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-04-04

