🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
# 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; }) }, …… ```