我目前使用
asyncData
获取api数据,但它只能在页面中使用(不在组件中)。这两种方法的工作方式相同,所以我想使用方法来获取api数据。 所以我想知道 asyncData和方法 之间有什么重要意义吗?
export default {
async asyncData ({ req }) {
let { data } = await axios.get(process.env.API_SERVER + `/v1/projects`)
return { items: data }
},
data () {
return {
items: null
}
},
methods: {
async getItems () {
let { data } = await axios.get(process.env.API_SERVER + `/v1/projects`)
this.items = data
}
}
答案 0 :(得分:1)
与#define TICK_NS (1000/72)
#define WSP (1300 / TICK_NS)
一旦你(ajax)请求了某些内容,你就会获得automatic promise
所以你添加promise
处理程序,这样当你获得数据时,你的then
代码就会被执行。
所以then
请求需要一些时间,因此我们正在制作该流程,因为ajax
意味着继续流程async
同样适用于but when data received i need to execute some code which i have provided in then function
(它只是具有异步功能的数据的包装器)和asyncData
方法,您编写的内容代码将async
用于await
然后当given operation
已完成方法将被执行。
就像operation
alert('hello')
用户点击await
然后继续投放一样。
同样在服务器端呈现它的工作方式相同它会暂停执行流程一段时间ok
然后再次恢复它。
更深入地了解这个incoming data
答案(如果您更感兴趣的话):Difference between async/await and ES6 yield with generators
答案 1 :(得分:1)
有很大的不同:
asyncData
是一种在组件初始化之前自动调用的方法,因此在组件数据设置之前就会被调用。
因此,您无法在方法中访问this
。
asyncData
对于服务器端呈现非常重要,您希望在使用获取的数据呈现组件之前首先获取数据。在初始化然后渲染组件之前,Nuxt将等待数据被提取。否则它将呈现为空。
初始化组件时首先可以使用方法。
您可以找到有关asyncData here in the docs的更多信息,并且有很好的描述。