色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

vue axios 攔截 element

錢琪琛1年前9瀏覽0評論

攔截器(Interceptors)可以在請求發送或響應接收之前進行一些公共的處理,例如添加統一的請求頭部、設置公共的參數、對響應結果進行統一處理等。Vue中的axios攔截器能夠讓我們在請求和響應過程中對一些數據進行攔截,實現一個可定制化、公共化的靈活調用機制。

Element UI 是一個UI框架,基于Vue開發。它提供了豐富的組件庫、組件風格多樣化、豐富的文檔和易于上手的設計等優點,使得它成為了Vue開發中的一個重要利器。

Element UI可以與axios搭配使用,能夠進行前端開發所需的常見的HTTP請求和響應操作。我們可以通過axios攔截器來對響應結果進行統一攔截處理,下面將介紹具體的攔截器實現代碼。

import axios from 'axios'
import { Message } from 'element-ui'
// 全局的axios攔截器
axios.interceptors.response.use(response =>{
const res = response.data
if (res.code !== 20000) {
Message({
message: res.message || 'Error',
type: 'error',
duration: 5 * 1000
})
// 這里返回一個 Promise.reject(),后續請求不會執行
return Promise.reject('error')
} else {
// 返回結果,繼續請求
return res
}
}, error =>{
Message({
message: error.message,
type: 'error',
duration: 5 * 1000
})
// 返回一個 Promise.reject(),可被后續then或catch語句捕獲
return Promise.reject(error)
})

在上述攔截器中,我們針對HTTP請求中的錯誤信息進行了統一攔截處理。如果響應結果中的狀態碼不為20000,則將會彈出一個Element UI小提示框,告訴用戶出現了哪些錯誤。此外,返回Promise.reject()函數可被后面的catch語句捕獲,實現了統一處理和錯誤處理。

此攔截器才是整個Element UI + axios請求的核心代碼!需要注意的是,如果你通過webpack打包的方式引入Element-UI,請使用this.$message,而不是Message。如果你使用了CDN引入,前綴則是_ELEMENT。

message: this.$message.error(res.message || '系統錯誤,請聯系管理員'); // 如果是 webpack 模式
message: _ELEMENT.Message.error(res.msg || '系統錯誤,請聯系管理員'); // 如果是CDN引入模式

使用攔截器之后,我們就可以打通Vue、Element UI、axios這個前端開發三線,為開發人員帶來更加便捷的開發體驗,以及更加優秀的開發效果。

上一篇vue2 ready
下一篇vue2 events