让我重复几点,作为我要说的话的借口
asyncData
可以设置组件级对象并访问vuex存储
fetch
无法设置组件级对象,但可以访问vuex store
asyncData
&;fetch
将在初始加载期间在服务器端触发
- 初始加载后,当调用相应的页面路由时,将触发
asyncData
和fetch
1) if your design is
- 将vuex store用作中央存储库
- 访问整个应用程序的vuex存储区中的数据
然后use fetch
2) if your design is
- 将vuex store用作中央存储库
- 具有设置组件级对象的选项
- 在特定路由中获取的数据仅由单个组件使用
- 需要灵活性才能拥有vuex存储或设置组件级对象的权限
然后use asyncData
有人能给我解释一下使用这些方法的优点吗
我认为使用asyncData
或fetch
没有任何缺点
Select asyncData
或fetch
完全取决于您的架构
Update for NuxtJS >= 2.12
Several points mentioned in the answer no longer apply when using newer NuxtJS versions (>= 2.12). Official RFC announcement here.
NuxtJS官方博客上的这post篇文章很好地解释了asyncData
和fetch
之间的新行为和差异.
至于两者之间的 Select ,我相信最初的答案仍然适用:
我认为使用asyncData
或fetch
没有任何缺点
Select asyncData
或fetch
完全取决于您的架构