在 Vue.js 中,created 钩子函数在实例创建之后立即调用。这意味着在 created 钩子函数中进行的数据请求可能还没有完成。mounted 钩子函数在挂载完成之后调用,此时已经渲染完成,因此如果在 mounted 中访问数据请求的结果,可能会得到 "undefined" 的值。
为了解决这个问题,你可以在数据请求完成之后再调用 mounted 钩子函数,或者将数据请求的代码放在 mounted 钩子函数中进行。
例如,你可以使用 Promise.then 方法来等待数据请求完成:
created() {
this.fetchData().then(() => {
// 数据请求完成
});
},
mounted() {
// 数据请求已经完成,可以访问数据了
},
methods: {
fetchData() {
return axios.get('/api/data').then((response) => {
this.data = response.data;
});
}
}
或者你也可以将数据请求的代码放在 mounted 钩子函数中:
mounted() {
this.fetchData();
},
methods: {
fetchData() {
axios.get('/api/data').then((response) => {
this.data = response.data;
});
}
}