vue仿dva自動處理請求loading狀態

2021-09-29 19:24:36 字數 1440 閱讀 9466

1、相關外掛程式準備

vue、vue-wait、axios

2、在main.js引入vue-wait

引入步驟如下,具體vue-wait說明請檢視

import vuewait from

'vue-wait'

//loading集中管理控制項

vue.

use(vuewait)

// add vuewait as vue plugin

let wait =

newvuewait()

window.$wait = wait

newvue()

.$mount()

;

3、axios請求方法編寫

這裡主要是在config中配置自定義屬性loadingloader,屬性值隨你定。

export

default)}

,// post

postdata

(params))}

,}

4、axios配置***

在進行ajax請求時,獲取配置的config, 根據config中的loadingloader自動攔截,修改loading狀態。

但是要注意,新版的axios在使用***攔截,無法拿到config中自定義屬性。我們可以使用老版本axios 0.15.3或者自行修改axios原始碼。

import axios from

'axios'

function

requestinterceptors

(config)

}function

responseinterceptors

(config)

}axios.interceptors.request.

use(

config =>

requestinterceptors

(config)

return config

}, err =>

)axios.interceptors.response.

use(

response =>

, error =>

)export

default axios

5、元件內使用
/**$wait.is()該方法的引數可以是陣列,也可以是字串,取決於

你希望由哪些請求來控制容器的載入狀態,這裡面的引數值是上一步在axios請求中寫的loadingloder值,

$wait.is('gettestlist') 會在axios請求'/api/gettestlist'自動變為true,結束請求時變為false。

無需我們再手動控制loading狀態 **/

/**省略中間****/

Vue專案請求超時處理

現在網頁專案大多採用前後端分離模式,這種模式優點有很多,但是也會帶來不少問題,比如 請求後端介面時會受網路因素影響,導致請求超時 這就需要我們在請求方法中設定攔截,對請求超時做處理 下面就是我在專案中使用的axios封裝方法,設定網路請超時攔截處理 api 路徑 const httpaxios ax...

vue中async await請求處理

promise.all 用法示例 const wait ms new promise resolve,reject ms resolve ms const pa promise.all wait 3000 wait 1000 wait 2000 依次列印 wait 1000ms wait 2000m...

Vue處理類似Search頁面多引數請求

首先我們要獲取所有的引數列表,給引數列表初始化 data 需要在beforemount 整合路由裡的引數,這裡可以一條條賦值,但是更好的方法肯定是通過object.assgin合併物件 beforemount 因為別的地方也需要傳送請求,所以我們需要把傳送請求的 封裝成函式,方便呼叫 methods...