据我所知,NuxtJs页面中的asyncData
函数是在创建组件之前在服务器端呈现的。以及在页面加载后用户在内部页面之间导航时。 fetch
功能非常相似,但是我们可以在其中将数据设置为store
,并在路由更改时检查store
中是否存在数据...
现在的问题是,为什么我要在页面刷新和路由更改中都向API发送请求?使用fetch
函数并将数据存储在vuex存储中不是更好,所以不需要进一步的API调用吗?在asyncData
函数内部需要什么样的数据?
例如,如果我想在服务器端渲染的应用程序中显示帖子列表,我认为最好的方法是使用fetch
属性填充vuex store
,然后,在每次更改路线时,我都会将数据存储在存储区中,并且无需进行API调用。
答案 0 :(得分:1)
该用例用于检索仅与特定页面相关的数据。
例如,您有多个端点返回有关特定动物,/ api / cats,/ api / dogs,/ api / birds的数据。
在浏览器中加载theapp.com/ cats 时,asyncData函数从/ api / cats 获取数据,并将其呈现在服务器端。
类似地,对于theapp.com/dogs,它会获取/ api / dogs。
如果一个/ api / animals端点包含一种饲料(狗,猫和鸟)中的所有动物数据,则用例会更改。
在这种情况下,您将进行一次检索,以使用诸如nuxtServerInit
之类的所有页面数据填充商店