詳解基于 axios 的 Vue 項目 http 請求優(yōu)化
對于需要大量使用 http 請求的項目,我們通常會選擇對 http 請求的方法進行二次封裝,以便增加統(tǒng)一的攔截器,或者統(tǒng)一處理阻止重復提交之類的邏輯。Vue.js 的項目中我們選擇使用了 axios 這樣一個 http 庫,下面也就簡述下基于 axios 做的簡單二次封裝
依賴
首先引入 axios ,對于 ie9 這樣不支持 promise 的瀏覽器還需引入 es6-promise 模塊
require('es6-promise').polyfill();
var axios = require('axios');
axios 初始化
初始化我們要實現(xiàn)兩個需求:
1.發(fā)送請求時帶上 cookies
2.重發(fā)發(fā)送請求時,如果前一次相同請求還未結(jié)束則中止前一次請求
const httpServer = axios.create({
responseType: 'json',
withCredentials: true, // 設(shè)置 withCredentials 使請求帶上 `cookies`
cancelToken: new axios.CancelToken(function (c) {
cancel = c // 記錄當前請求的取消方法
})
})
http 請求二次封裝
var promiseArr = {} // 用于記錄每個請求的取消方法
const gUtils = {
getData: function () {
let cancel
const httpServer = axios.create({
responseType: 'json',
withCredentials: true, // 設(shè)置 withCredentials 使請求帶上 `cookies`
cancelToken: new axios.CancelToken(function (c) {
cancel = c // 記錄當前請求的取消方法
})
})
// 設(shè)置一個攔截器,每次發(fā)起請求前取消掉在進行中的相同請求
httpServer.interceptors.request.use(function (config) {
if (promiseArr[config.url]) {
promiseArr[config.url]('操作取消')
promiseArr[config.url] = cancel
} else {
promiseArr[config.url] = cancel
}
return config
}, function (err) {
// return Promise.reject (error)
})
return httpServer
}
}
這樣我們在對接服務時候直接使用我們封裝好的 http 請求方法即可
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
使用Vue3和Plotly.js繪制動態(tài)3D圖表的示例代碼
在數(shù)據(jù)可視化應用中,需要將數(shù)據(jù)動態(tài)加載到圖表中并進行實時更新,本文將展示如何使用Plotly.js和Vue.js實現(xiàn)這一功能,從加載外部數(shù)據(jù)到創(chuàng)建交互式圖表,文中有相關(guān)的代碼示例供大家參考,需要的朋友可以參考下2024-06-06
Vue+ElementUI使用vue-pdf實現(xiàn)預覽功能
這篇文章主要為大家詳細介紹了Vue+ElementUI使用vue-pdf實現(xiàn)預覽功能,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-11-11
解決Vue-cli3沒有vue.config.js文件夾及配置vue項目域名的問題
這篇文章主要介紹了解決Vue-cli3沒有vue.config.js文件夾及配置vue項目域名的問題,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-12-12
vant之關(guān)于van-list的使用以及一些坑的解決方案
這篇文章主要介紹了vant之關(guān)于van-list的使用以及一些坑的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
Vue3導入Elementplus時組件無法加載的情況及解決
這篇文章主要介紹了Vue3導入Elementplus時組件無法加載的情況及解決方案,具有很好的參考價值,希望對大家有所幫助2024-03-03
使用vue2.6實現(xiàn)抖音【時間輪盤】屏保效果附源碼
前段時間看抖音,有人用時間輪盤作為動態(tài)的桌面壁紙,一時間成為全網(wǎng)最火的電腦屏保,后來小米等運用市場也出現(xiàn)了【時間輪盤】,有點像五行八卦,感覺很好玩,于是突發(fā)奇想,自己寫一個網(wǎng)頁版小DEMO玩玩,需要的朋友可以參考下2019-04-04
vue實現(xiàn)畫筆回放canvas轉(zhuǎn)視頻播放功能
這篇文章主要介紹了vue實現(xiàn)畫筆回放,canvas轉(zhuǎn)視頻播放功能,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2024-01-01

