Ajax是一種用于無(wú)需刷新整個(gè)頁(yè)面,即可與服務(wù)器進(jìn)行交互的技術(shù)。通過(guò)Ajax,我們可以獲取服務(wù)器端的數(shù)據(jù),實(shí)現(xiàn)異步數(shù)據(jù)交互的效果。在Vue中,我們常常需要使用Ajax技術(shù)來(lái)獲取數(shù)據(jù),以便將數(shù)據(jù)渲染到頁(yè)面上。
Vue提供了一個(gè)axios庫(kù),它是一個(gè)基于Promise比jQuery更小、更快、更方便的HTTP庫(kù)。我們可以使用axios發(fā)送Ajax請(qǐng)求,獲取我們需要的數(shù)據(jù)。
//引入axios
import axios from 'axios';
//發(fā)送GET請(qǐng)求
axios.get('/api/data')
.then(res =>{
console.log(res.data);
})
.catch(error =>{
console.log(error);
});
//發(fā)送POST請(qǐng)求
axios.post('/api/data', {
name: 'Vue',
age: 20
})
.then(res =>{
console.log(res.data);
})
.catch(error =>{
console.log(error);
});
通過(guò)axios獲取到的數(shù)據(jù),我們可以將其賦值給Vue組件中的data屬性,以便將其渲染到頁(yè)面上。
//Vue組件
export default {
data() {
return {
dataList: []
};
},
created() {
//發(fā)送Ajax請(qǐng)求
axios.get('/api/data')
.then(res =>{
this.dataList = res.data;
})
.catch(error =>{
console.log(error);
});
}
};
//模板
<template>
<div>
<ul>
<li v-for="item in dataList" :key="item.id">
{{ item.name }}
</li>
</ul>
</div>
</template>
通過(guò)以上的代碼,我們就可以使用Ajax獲取數(shù)據(jù),將數(shù)據(jù)渲染到Vue組件中的模板上,實(shí)現(xiàn)異步數(shù)據(jù)交互的效果。Ajax技術(shù)是Vue中的重要技術(shù)之一,對(duì)于前端開(kāi)發(fā)人員來(lái)說(shuō),熟練掌握Ajax技術(shù)是非常重要的。