axios攔截器與vuex狀態(tài)控制應用

本章概述

? ? ? ? axios的攔截器也是鉤子的一種,在請求或響應前可以定義一些操作。最廣泛的應用就是利用axios鉤子防止用戶多次點擊按鈕發(fā)送請求。?

應用場景

????????當用戶高頻率點擊提交按鈕可能就會把一個請求發(fā)送多次,為了防止這種情況。我們可以利用鉤子設置一個狀態(tài)isLoading。請求鉤子內置true,響應鉤子內置false,每次調用前判斷isLoading是否為真,如果為真不繼續(xù)請求。isLoading使用Vuex進行狀態(tài)管理。

圖文詳解

? ? ? ? ?首先vuex中添加一個狀態(tài)isLoading。如圖1,store.js寫入

圖1.store.js

? ? ? ? 然后添加攔截器,我寫在了main.js中。如圖2。使用store.commit()轉換isLoading的狀態(tài)。

圖2.main.js

? ? ? ? 最后在我二次封裝的axios中判斷isLoading。如果為真直接返回不請求。

圖3.axios.js

其他

? ? ? ? 除了在二次封裝的axios中判斷isLoading的真假。我們還可以通過編寫公共方法的方式,在公共方法中取isLoading的值,在參數(shù)準備等之前就調用方法型如(if(this.$common.checkLoading()))來判斷?;蛘咧苯釉诮M件中用computed讀vuex中的狀態(tài),在參數(shù)準備等之前判斷形如(this.isLoading)的值。

項目源碼gitee鏈接

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容