当前位置: 首页 > 知识库问答 >
问题:

Vue/Nuxt。js-API在创建的钩子中被调用两次

督弘化
2023-03-14

我目前在Nuxt开发。和大多数初学者一样,我想知道放置API调用的最佳生命周期挂钩。我找到的许多参考资料(很像下面的参考资料)都指出,created()hook是在加载所有内容之前从API获取数据的最佳位置。

在Vue.js中创建和挂载事件之间的差异

当我在开发者选项的网络选项卡上注意到我在created()hook中的API被调用了两次时,我的问题出现了。在进一步研究之后,它声明这个钩子在服务器端和客户端上运行。我注意到mounted()只在客户端运行,所以我正在学习如何利用这个钩子。但是我确实注意到,我可以在created()钩子中使用一些if逻辑(if process.server),只在客户机/服务器上运行,而不能同时在客户机/服务器上运行。这是一个共同的解决方案吗?

为了进一步澄清我的问题,如果创建()在服务器端和客户端都运行,为什么要把我的API调用放在这个钩子里?

共有1个答案

马野
2023-03-14

虽然创建的可能是Vue应用程序的合适挂钩,但Nuxt提供了更适合获取数据的附加挂钩。如果需要仅在服务器端进行提取,则需要在钩子中使用If(process.server)包装调用。

  1. 在组件实例创建后的服务器端呈现期间调用,并且在导航时在客户端上调用,但是可以通过felchOnServer: false禁用服务器端读取。
  2. 可用于所有Vue组件
  3. 这个上下文是可用的
  4. 简单地变异本地数据
  5. 通过$felchState.pending$felchState.error公开数据加载状态,并允许手动调用$getch()

用法示例:

export default {
  data() {
    return {
      todos: []
    }
  },
  async fetch() {
    const { data } = await axios.get(
      `https://jsonplaceholder.typicode.com/todos`
    )
    // `todos` has to be declared in data()
    this.todos = data
  }
}
  1. 在创建组件实例之前调用
  2. 仅限于页面级组件
  3. 上下文不可用
  4. 通过返回数据来添加有效负载

用法示例:

export default {
  async asyncData(context) {
    const data = await context.$axios.$get(
      `https://jsonplaceholder.typicode.com/todos`
    )
    // `todos` does not have to be declared in data()
    return { todos: data.Item }
    // `todos` is merged with local data
  }
}

 类似资料:
  • 我将Ionic3与一个一起使用。我有下面的函数,出于某种原因,即使该函数只被调用一次,第三行也会被触发两次。 问题 这引起了一个问题,因为正在获取第二个订阅的值,并且第一个订阅丢失,不允许我取消订阅。 问题 如何创建一个只有一个订阅的

  • 有一个带有正方形的板,其值取决于数组,它由hook处理。每次单击都会将值提高一,但不幸的是,它会将值提高两次(第一次单击除外)。 我的问题是: (1) 为什么会发生这种情况,(2)如何避免它,以及,一般来说,(3)有没有更好的方法来处理这样一个带有钩子的数组。 日志: 可以看出,从第二次点击开始,每次点击都会提高两次值。

  • 我是一个很新的反应,并得到以下错误: 我想在提交表单时使用另一个组件。因此,在文件A中,当表单提交时,is使用一个函数,在调用其他组件之前首先检查某些内容,如: 在组件上,我有一些usstate钩子: 当页面正在加载的时候,我得到了这个错误,有没有人知道什么是错误的?

  • 我需要创建一个React应用程序,让你列出口袋妖怪和类型。我从PokeAPI获取数据。从应用程序组件获取数据然后将其传递给子组件是一种好的做法,还是从子组件获取数据更好? 我在主应用程序中获取它,我可以看到获取工作,因为我需要控制台。记录数据,但是我的组件没有得到它,因此我得到了一个道具。map不是中的函数。 这是我的应用程序。js: 这是我的口袋妖怪列表。js: 最后一个是我的PokeCard。

  • 本文向大家介绍thinkphp的钩子的两种配置和两种调用方法,包括了thinkphp的钩子的两种配置和两种调用方法的使用技巧和注意事项,需要的朋友参考一下 thinkphp的钩子行为类是一个比较难以理解的问题,网上有很多写thinkphp钩子类的文章,我也是根据网上的文章来设置thinkphp的钩子行为的,但根据这些网上的文章,我在设置的过程中,尝试了十几次都没有成功,不过,我还是没有放弃,最后还

  • 本文向大家介绍thinkPHP中钩子的两种配置调用方法详解,包括了thinkPHP中钩子的两种配置调用方法详解的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了thinkPHP中钩子的两种配置调用方法。分享给大家供大家参考,具体如下: thinkphp的钩子行为类是一个比较难以理解的问题,网上有很多写thinkphp钩子类的文章,我也是根据网上的文章来设置thinkphp的钩子行为的,但根据