[翻译] 理解Nuxt 2.12中的 fetch

在研究 Nuxt 源码的过程中发现 fetch 的运行过程竟然和官网上说的完全不同,于是我灵机一动去看了英文官网...  果然 Nuxt 2.12 中更新了 fetch,可以说完全变了个样,更加强大好用了,但是中文官网的文档还是 2.11.X ,并没有更新。看了英语文档之后在官网发现了这篇 博文,写得很不错,想翻译过来给学习 Nuxt 的同学一个参考,毕竟现在中文资料基本没有,限于水平,有错误还请指出。

 

介绍

Nuxt在最新发布的2.12版本中引入了一个新的方法-- fetch。Fetch 提供了一种全新的方式将数据引入Nuxt应用程序中。在这篇文章中,我们将探讨 fetch 钩子的不同功能,并尝试了解它的工作原理。

Fetch 钩子函数 & Nuxt 生命周期

Nuxt 的钩子函数 fetch 运行在 Vue 的 create 钩子函数之后,正如我们所知,所有的 Vue 生命周期钩子函数都是在他们对应的 this 上下文中被调用,fetch 也不例外。

852821474-8ba4effbcd960da9 (1109×1788)


Fetch 钩子函数是在服务器端组件实例化后调用的,这使得 fetch 函数可以通过 this 来引用组件的实例对象。

export default {
  fetch() {
    console.log(this);
  }
};

让我来看看这对页面组件来说意味着什么。

对页面组件而言

在 this 上下文的帮助下,fetch 可以直接更改组件的 data ,这意味着我们可以直接设置组件的本地数据,而不需要使用类似 Vuex 这种外部储存来储存数据。


这样一来,Vuex 就变成一个可选项了。当然如果你需要使用的话,还是能够使用 this.$store 来访问。

Fetch 钩子函数的可用性

通过 fetch 函数我们可以在任何 Vue 组件中预取异步数据,这意味着之前只能在 page 目录下的 Vue 组件才能使用的限制没有了,所有的 Vue 组件都可以使用 fetch 函数。比如 /layouts 和 /components 目录下的 vue 组件。
我们来看看这对 layouts 和 building-block 组件来说意味着什么

Layout 组件

通过使用新的 fetch

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值