首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重复多次调用Nuxt fetch()

重复多次调用Nuxt fetch()
EN

Stack Overflow用户
提问于 2020-07-04 03:35:52
回答 1查看 1.3K关注 0票数 1

我正在创建一个从Array.Buffer异步接收图像的基本组件。

遵循Nuxt documentation,我认为fetch()将是正确的调用,但当它被实现时,它被调用+20次。

这一切为什么要发生?我想利用async/await,但现在看来created() promises必须要做吗?

代码语言:javascript
复制
<template>
  <div class="image-container">
        <!-- <img :class="imgClasses" :src="`data:image/png;base64, ${image}`" alt="Preview Image" /> -->
  </div>
</template>


<script lang="ts">
import { Vue, Component, Prop } from 'nuxt-property-decorator'

@Component
export default class BasePreviewImage extends Vue {
  @Prop({ type: String }) id: string
  @Prop({ type: String, default: 'small' }) size: string

  image: string = ''

  get imgClasses() {
    return {
      [`preview-image-${this.size}`]: true
    }
  }

  async fetch() {
    console.log('fetching')
  }

  mounted() {
    console.log('mounted')
  }

  created() {
    console.log('Created BasePreviewImage')
  }
}

EN

回答 1

Stack Overflow用户

发布于 2020-07-04 10:20:25

渲染路由时在服务器端调用fetch,导航时在客户端调用fetch。因此,有机会多次调用/撤销fetch()。也许你已经在多个地方使用过这个组件。但是重要的事情fetch()在Nuxt >= 2.12中被弃用

但是你可以通过这种方式控制fetchOnServer: false,然后它将只在客户端调用。

代码语言:javascript
复制
<script>
export default {
  data () {
    return {
      posts: []
    }
  },
  async fetch () {
    this.posts = await this.$http.$get('https://jsonplaceholder.typicode.com/posts')
  },
  fetchOnServer: false
}
</script>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/62721729

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档