如何检查Vue/Nuxt中是否加载了图像?

7tofc5zh  于 2023-05-29  发布在  Vue.js
关注(0)|答案(1)|浏览(147)

新的Vue和Nuxt。我试图显示 backbone 之前的形象是完全加载。
这是我的尝试, backbone 显示,但图像从来没有加载和onImageLoad从来没有调用。

<template>
  <div>
    <img v-if="isLoaded" @load="onImgLoad" :src="me.img">
    <div v-else class="skeleton"></div>
  </div>
</template>

<script lang="ts">
export default {
  props: {
    me: Object,
  },
  data() {
    return {
      isLoaded: false,
    }
  },
  methods: {
    onImgLoad() {
      console.log(` >> isLoaded:`, this.isLoaded)
      return this.isLoaded = true
    },
  },
}
</script>

我有一些破碎的图像网址来测试回退源代码,这是一个问题?但我试着删除那些断开的链接,它仍然不工作。
示例数据:

export const me = {
  name: 'David',
  img: 'https//david.png', // Example broken > https://no.jpg
},

我做错了什么?

jhkqcmku

jhkqcmku1#

由于isLoaded在初始呈现时为false,因此img元素将从DOM树中删除。如果它不在DOM中,则不会请求图像src,因此- no load事件。
切换到v-showimg元素将保留在DOM中,因此@load事件将触发。

相关问题