从created中把数据传给this.lasttime;
在mounted 获取到的this.lasttime还是原来data中的数值
怎么才能把created中的数据在mounted中打印出来
从created中把数据传给this.lasttime;
在mounted 获取到的this.lasttime还是原来data中的数值
怎么才能把created中的数据在mounted中打印出来
是异步的原因吧
methods:{
async query(){
const res = await this.$axios.get(url2)
...
this.lasttime = this.act ...
console.log(this.lasttime)
}
}
created(){
this.query()
}
mounted(){
console.log(this.lasttime)
}
这样试一下呢
你好,你在create中并没有将数据保存到Vue实例中,在axios中使用this,并不是Vue实例,所以你在this.lasttime = 的时候,是给axios创建了lasttime属性,并给axios进行了赋值,并不是异步原因。
5 回答4.9k 阅读✓ 已解决
4 回答3.1k 阅读✓ 已解决
2 回答4.8k 阅读✓ 已解决
4 回答4.4k 阅读✓ 已解决
4 回答1.9k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
2 回答2.6k 阅读✓ 已解决
是因为异步的原因。
mounted是钩子函数,当vue组件挂载完后就会调用,把这个写在mounted其实就不应该。
1.如果是想要在接口返回后就立马使用lastime,应该为这个具体逻辑写个methods,然后在接口的回调里去调用。
2.把接口请求函数写成同步的也行,但这个就有一个成本,因为你是在created中去调用的,如果这个接口请求比较慢或有一些其他问题,会阻塞这个组件的渲染挂载