当前位置: 首页 > news >正文

Vue 图片加载失败处理

Vue 图片加载失败处理

很多人会使用 @error 方法在图片加载 失败时替换img.src 的方式

但是这种方式在默认图片加载失败时,@error会出现死循环,所以我使用了@error + v-if的方式。

<template><div><!-- 正常时显示 --><img v-if="!imgError" :src="imgUrl" @error="imgErrorHandler"/><!-- 加载异常时显示 --><img v-else :src="defaultImgUrl"/></div>
</template>
  export default {name: 'ImgOnError',data() {return {imgError: false,imgUrl: 'https://images.unsplash.com/photo1-1706733144563-c42ec7e637' +'d4?q=80&w=870&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fD' +'B8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D',defaultImgUrl: 'https://images.unsplash.com/photo-1706508963745-d090f' +'82a0416?q=80&w=435&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxM' +'jA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D'}},methods: {imgErrorHandler() {// 图片加载失败时调用,用于替换为显示默认图片this.imgError = true;}}}

使用这种方式在默认图片也加载失败时会死循环

在看了很多文章后,发现大多是在 @error 方法中添加 img.onerror = null,目的是为了防止默认图片也加载失败时 @error 一直循环调用,但是在我的测试中,这个语句并不能防止这个问题,不知道是版本还是什么原因。

<template><div><img :src="imgUrl" @error="imgErrorHandler"/></div>
</template>
  export default {name: 'ImgOnError',data() {return {imgUrl: 'https://images.unsplash.com/photo1-1706733144563-c42ec7e637' +'d4?q=80&w=870&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fD' +'B8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D',defaultImgUrl: 'https://images.unsplash.com/photo-1706508963745-d090f' +'82a0416?q=80&w=435&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxM' +'jA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D'}},methods: {imgErrorHandler(event) {let img = event.srcElement;img.src = this.defaultImgUrl;// 很多文章在这里写上这句,为了防止error方法循环调用// 但是我在测试时并不生效img.onerror = null;}}}
http://www.lryc.cn/news/293824.html

相关文章:

  • Quartus IP学习之ISSP(In-System Sources Probes)
  • Vue组件通信讲解[父子组件通信]
  • Qt应用开发(安卓篇)——调用ioctl、socket等C函数
  • centos 安装docker CE
  • 某赛通电子文档安全管理系统 UploadFileList 任意文件读取漏洞复现
  • Kafka运维相关知识
  • 鸿蒙Native项目生产动态库(.so) 和静态库(.a)
  • B站课程评分
  • 【C++】拷贝构造函数和赋值运算符重载详解
  • BUUCTF-Real-[ThinkPHP]5-Rce
  • 物联网中基于WIFI的室内温度检测系统设计
  • 驱动开发-系统移植
  • MySQL数据存储
  • 带着问题读源码——Spring MVC是怎么找到接口实现类的?
  • [NAND Flash 7.1] 闪存系统性能优化方向集锦?AC timing? Cache? 多路并发?
  • 【数据结构】分治策略
  • 【PLC一体机】PLC一体机中如何实现触摸屏和PC电脑的通讯
  • 如何保证订单异步回调的幂等性
  • Linux下vim命令详解
  • 机器学习6-逻辑回归
  • 关于Clone
  • 【C++入门学习指南】:函数重载提升代码清晰度与灵活性
  • MySql主从同步,同步SQL_ERROR 1032解决办法
  • Webpack的性能优化
  • PyTorch中tensor.backward()函数的详细介绍
  • Linux 驱动开发基础知识——内核对设备树的处理与使用(十)
  • 编程笔记 html5cssjs 077 Javascript 关键字
  • LeetCode_19_中等_删除链表的倒数第N个结点
  • C++泛编程(3)
  • python基于django的公交线路查询系统mf383