javascript - vuepress 版本上的 "fetch is not defined"

标签 javascript vue.js fetch vuepress

我正在尝试使用 vuepress 构建一个静态站点。我有一个使用 javascript fetch 库的 vue 组件。它看起来像这样:

<template>
<div>
    <p> {{totalVuePackages}} </p>
</div>
</template>

<script>
export default {
  name: "get-request",
  data() {
    return {
      totalVuePackages: null
    };
  },
  created() {
    fetch("https://api.npms.io/v2/search?q=vue")
      .then(response => response.json())
      .then(data => (this.totalVuePackages = data.total));
  }
};
</script>

如果我使用 vuepress dev 它可以完美无误地工作。但是,当我使用 vuepress build 时,出现以下错误:

ReferenceError: fetch is not defined

我是 vue 和 javascript 的新手,但我假设 fetch 是在客户端运行的内置 javascript 方法。

最佳答案

构建过程是在节点环境而不是浏览器中完成的,这就是为什么没有定义 fetch 的原因。

vuepress 调用 created 钩子(Hook)来生成静态 html 文件。 如果你只想在客户端调用 fetch,你应该在 mounted 钩子(Hook)上调用它,而不是在构建过程中调用它。

关于javascript - vuepress 版本上的 "fetch is not defined",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65987807/

相关文章:

javascript - 将此函数完全转换为 jQuery

javascript - 为什么我的窗口调整大小事件监听器不起作用?使用 Three.js 和 Vuetify.js

javascript - 模拟可读流

php - PDO 多次获取同一查询

javascript - 使用 JavaScript 在 Onblur 事件的下拉菜单中选择选项

javascript - 如何允许通过按键监听器在限制字符的字段上进行选择和打字

javascript - Vue路由器缺少参数

javascript - Vuex:我怎样才能更新这个对象的唯一元素?

google-chrome - 获取 : DOMException: Unable to decode audio data 的 WebAudio 流式传输

javascript - 将测试文件放在与源文件相同的文件夹中或单独放在 test/下的优缺点