欧美一区二区三区,国内熟女精品熟女A片视频小说,日本av网,小鲜肉男男GAY做受XXX网站

vue axios 和res

錢艷冰1年前9瀏覽0評論

axios是一個基于Promise的HTTP庫,可以用于瀏覽器和Node.js。封裝了XMLHttpRequest請求、返回Promise,提供了常見的請求和響應處理方式,因而得到了廣泛的應用。與Vue相結(jié)合使用,可以方便地進行數(shù)據(jù)交互,實現(xiàn)網(wǎng)站的前后端分離。

在Vue項目中,可以使用axios獲取數(shù)據(jù)。可以安裝axios并在Vue實例中引用。

npm install axios
Vue.prototype.$http = axios

然后可以在Vue組件中使用axios,如下所示:

axios.get('/api/getData')
.then(res => {
console.log(res.data)
})
.catch(error => {
console.log(error)
})

其中,axios.get是一個Promise對象,返回的結(jié)果是res,其中包含了我們從服務器獲取到的數(shù)據(jù)。

如果服務器返回的數(shù)據(jù)格式為JSON格式,可以使用Vue的響應攔截器對響應數(shù)據(jù)進行處理。

axios.interceptors.response.use(
response => {
const data = response.data
if (data.code === 200) {
return data
} else {
// 對錯誤進行處理
}
},
error => {
console.log(error)
// 對錯誤進行處理
return Promise.reject(error)
}
)

在響應攔截器中,可以對響應數(shù)據(jù)進行處理,例如,當服務器返回的數(shù)據(jù)code為200時,可以返回數(shù)據(jù)本身;當code不為200時,可以對錯誤進行處理。

一般情況下,服務器返回的數(shù)據(jù)會包含code、msg和data三個字段。在響應攔截器中,可以對這三個字段進行處理。

// 對code進行處理
const code = data.code
if (code === 200) {
return data.data
} else {
// 對錯誤進行處理
}
// 對msg進行處理
const msg = data.msg
if (msg) {
// 彈出錯誤提示
}
// 對data進行處理
const data = data.data
if (!data) {
// 數(shù)據(jù)為空時的處理
}

最后,需要注意的是,我們可以在Vue組件中使用axios來獲取服務器數(shù)據(jù),但是在響應攔截器中,可能需要使用Vue的vm實例中的對象,例如,通過vm.$router跳轉(zhuǎn)頁面,這時可以將Vue實例存儲在window對象中,方便在響應攔截器中使用。

window.vueInstance = new Vue({
router,
store,
render: h => h(App),
}).$mount('#app')
axios.interceptors.response.use(
response => {
const data = response.data
if (data.code === 200) {
return data
} else {
// 對錯誤進行處理
window.vueInstance.$router.push('/error')
}
},
error => {
console.log(error)
// 對錯誤進行處理
return Promise.reject(error)
}
)