# Vue中與服務器交互
其實就是`AJAX`,我們不選用原生的`XMLHttpRequest`來實現,我們通過官方推薦的`Axios`來進行訪問數據。究竟數據在哪里請求會好一些呢?
>[success] 1. 在生命周期中 進行AJAX
> 2. 生命周期中可以訪問到data的數據,并且可以修改data中的數據。
我們在實例的所有生命周期中添加修改`data`數據的做法。我們添加一個查看一下效果。我們發現在`created`、`beforeMount`、`mounted`、`beforeUpdate`和`updated`是可以對`data`中數據進行修改。而銷毀階段的生命周期中對數據的修改是不會生效的。
>[danger] 注意
> updated這個生命周其中對數據一旦進行修改,那么就會進入死循環。所以updated這個生命周期也不可以進行AJAX;
> mounted生命周期中進行修改data中的數據,會引起beforeUpdate和updated生命周期執行,會浪費性能。我也可以將其排除掉。
> beforeMount在這個生命周期之前經歷過編譯,并且形成了虛擬dom,如果再修改數據會重新引起編譯成虛擬dom。編譯其實就是一個函數。如果不理解虛擬dom也不打緊。只需要知道在這個生命周期之前,已經執行過一個函數。如果在這個生命周期中修改了數據,那么這個函數也會重新執行。導致性能浪費。
>[success] 總結:
> 可以進行AJAX操作的生命周期有**created**、**beforeUpdate**這兩個生命周期。
> created執行時,編譯函數并未執行。只是將數據進行了修改。節省了性能。berforeUpdate生命周期,是當頁面中數據發生改變會觸發。也可以進行ajax。
## AJAX
```
……
created(){
axios.get('./data.json').then( (data)=> {
this.list = data.data.list;
})
},
……
```