新的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
},
我做错了什么?
1条答案
按热度按时间jhkqcmku1#
由于
isLoaded
在初始呈现时为false,因此img
元素将从DOM树中删除。如果它不在DOM中,则不会请求图像src,因此- no load事件。切换到
v-show
。img
元素将保留在DOM中,因此@load
事件将触发。