vue图片不存在时加载默认图片

在文件中的img那里添加:οnerrοr="errorImg01",然后设置errorImg01的路径如果直接写成

errorImg01: ('../../assets/images/item_image.png'),会找不到这个图片

 

由于项目启动后, 图片的路径并不是我们写的路径了。所以我们用

errorImg01: 'this.src="' + require('../../assets/images/item_image.png') + '"'这个来请求图片。

 

如下图:

<template> 
 <div class="goods_img">
  <img :src="item.PicUrl" alt="" :onerror="errorImg01">
 </div>
</template>


<script>

export default {
  name: "ListItems",
  data () {
    return {
      errorImg01: 'this.src="' + require('../../assets/images/item_image.png') + '"'
    }
  }
}
</script>

当你写完后发现并不生效,这时候需要重新运行npm run dev

Vue3中,如果动态加载图片并遇到显示不出来或者默认显示为默认静态图片的问题,可能是由于以下几个原因: 1. **懒加载(Lazy Loading)**:如果你使用了像`vue-lazyload`这样的库,确保设置了正确的配置项,如`lazy-src`属性,并且当图片完成加载能正确触发回调函数。 2. **网络请求错误**:确保图片URL正确无误,且服务器响应正常。可以添加异常处理机制来捕获加载失败的情况。 3. **组件更新问题**:在`v-if`或`v-show`条件下加载图片,确保在条件变为真,对应的`<img>`元素已经存在并且正确更新了src属性。 4. **组件生命周期钩子**:检查是否在适当的生命周期钩子(如`mounted()`或`updated()`)里设置图片的初始状态。 5. **缓存问题**:浏览器可能会缓存旧的图片资源,清除缓存或者强制刷新页面可能有助于解决。 6. **样式影响**:确认图片容器是否有隐藏、裁剪等CSS样式导致图片无法显示,比如高度设置为0或者overflow: hidden。 要解决这个问题,你可以尝试逐一排查上述原因,并根据实际情况修改你的代码。例如: ```html <template> <div> <img :src="lazyImageSrc" :alt="imageAlt" v-if="showImage"> <div v-else>默认图片</div> </div> </template> <script> export default { data() { return { lazyImageSrc: 'default-image-url', imageAlt: '默认图片描述', showImage: false, }; }, mounted() { // 加载图片完成后更新状态 this.loadImage(); }, methods: { loadImage() { fetch('your-image-url') .then(response => response.blob()) .then(blob => { this.lazyImageSrc = URL.createObjectURL(blob); this.showImage = true; }) .catch(error => console.error('Error loading image:', error)); }, }, }; </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值