vue.js - 我在 asyncData 中遇到非常慢的 Axios 请求

标签 vue.js axios server-side nuxt.js

nuxt: 2.4.5
@nuxtjs/axios: 5.4.1

我在 asyncData 中获取数据,它持续了 5 秒,这使得加载页面非常长,它与 axios 请求有关,当我这样做时,但是在方法 created 而不是 asyncData 中,一切都很完美。

我尝试重新安装所有依赖项并使用旧版本和最新版本,结果相同。

    asyncData({ app: {$axios} }) {
      // this is very slow
      return $axios.get('/api/v1/advertisements').then(() => {});
    },
    created() {
      // this works perfect
      this.$axios.get('/api/v1/advertisements').then(() => {});
    },

Axios 请求在 created 和 asyncData 中使用时应该是一样的。

最佳答案

他们的工作方式相同。这意味着你的 api 返回数据 5 秒,所以你需要看看你的 api 有什么问题。

asyncData 和 created 的区别在于,在 asyncData 中,nuxt 会在渲染页面之前等待请求完成,而在 created 中,它不会等待,只会渲染页面并稍后用请求结果更新它

关于vue.js - 我在 asyncData 中遇到非常慢的 Axios 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55432908/

相关文章:

javascript - 如何在服务器端包含 javascript 文件?

javascript - Vue Simple Table强制每个单元2或3列

node.js - 获取错误 "Unexpected token <"304 notmodified withexpress for vue.js 库

axios - 如何解决 "' response' is defined but never used"on axios.then 回调

javascript - 了解 Axios 创建的功能

javascript - 客户端和服务器端编程有什么区别?

javascript - Vue.js 中的组件范围

javascript - 将 VueJS 连接到 RabbitMQ

javascript - 无法读取 VUE 中链式 AXIO 事务内的公共(public)数组项

java - 服务器端javascript相对于java的优势