在我的应用程序中,我有一个卖方页面,其中显示该卖方列出的产品。我正在使用asyncData获取页面所需的所有数据(对于SEO更好)
asyncData ({params, app, error }) {
return app.$axios.$get(`/seller/${params.username}`).then(async sellerRes => {
let [categoriesRes, reviewsRes, productsRes] = await Promise.all([
app.$axios.$get(`/categories`),
app.$axios.$get(`/seller/${params.username}/reviews`),
app.$axios.$get(`/seller/${params.username}/products`)
])
return {
seller: sellerRes.data,
metaTitle: sellerRes.data.name,
categories: categoriesRes.data,
reviewsSummary: reviewsRes.summary,
products: productsRes.data,
}
}).catch(e => {
error({ statusCode: 404, message: 'Seller not found' })
});
},
尽管此方法可以完成预期的工作,但我还是忍不住认为自己做错了。
导航到页面时,nuxt进度栏显示两次(这很奇怪)。
我一直在搜索一段时间,以尝试在asyncData中查找多个请求的示例,但是那里并没有太多内容。
也许我不应该在asyncData中调用多个请求?
实际上,您也可以使用
async await
,它看起来也很干净。这是它的工作沙箱。(别忘了为
:id
路由参数添加值)