如何在 Vue3 中处理 img 标签图片无法加载的问题
2023-02-18 16:31:00 时间
前言
有时因为图片路径错误等问题,<img>
标签中的图片无法正确加载,就会呈现出图裂的模样,很影响界面的美观。这时候我们可以使用默认的图片来替换掉无法加载的图片,下面就来看下如何实现这个过程。
实现方式
<img>
标签中的图片无法正常加载时,会触发 onerror
事件,所以我们可以给这个事件绑定一个回调 useDefaultImage
,下面是实现代码:
<template>
<img
:src="data.thumbnail"
@error.once="useDefaultImage"
alt="缩略图"
/>
</template>
<script>
export default {
setup() {
let defaultThumbnail = require("@/assets/image/article-thumbnail.jpg");
function useDefaultImage(event) {
event.target.src = defaultThumbnail;
}
return { useDefaultImage };
},
};
</script>
正常情况下用了上述代码之后就能加载默认图片了,但是有一种情况下仍然无法触发 onerror
事件:服务器返回的数据 data
没有 thumbnail
属性(比如在响应结果类上使用了 Jackson 的 @JsonInclude(JsonInclude.Include.NON_NULL)
注解),此时为 data.thumbnail
就会是 undefined
,无法触发 onerror
事件,所以可以在拿到响应数据的时候处理一下为空的情况,用默认图片路径来替换。
相关文章
- ASP.NET Core 性能优化最佳实践
- 轻松应对并发,Newbe.Claptrap 框架入门,第四步 —— 利用 Minion,商品下单
- Newbe.Claptrap 框架入门,第三步 —— 定义 Claptrap,管理商品库存
- Newbe.Claptrap 框架如何实现在多种框架之上运行?
- 年轻的樵夫哟,你掉的是这个免费 8 核 4G 公网服务器,还是这个随时可用的 Docker 实验平台?
- Newbe.Claptrap 框架如何实现 Claptrap 的多样性?
- 十多位全球技术专家,为你献上近十个小时的.Net微服务介绍
- Newbe.Claptrap 框架如何实现多级生命周期控制?
- 轻松应对并发问题,Newbe.Claptrap 框架中 State 和 Event 应该如何理解?
- 轻松应对并发问题,简易的火车票售票系统,Newbe.Claptrap 框架用例,第一步 —— 业务分析
- 轻松应对并发问题 Newbe.Claptrap 框架入门,第二步 —— 简单业务,清空购物车
- Newbe.Claptrap 框架中为什么用 Claptrap 和 Minion 两个词?
- 轻松应对并发问题 Newbe.Claptrap 框架入门,第一步 —— 创建项目,实现简易购物车
- 谈反应式编程在服务端中的应用,数据库操作优化,提速 Upsert
- 十万同时在线用户,需要多少内存?——Newbe.Claptrap 框架水平扩展实验
- docker-mcr 助您全速下载 dotnet 镜像
- 朋友,您可能是MCR的受害者
- 谈反应式编程在服务端中的应用,数据库操作优化,万条记录从20秒到0.5秒
- 一起了解 .Net Foundation 项目 No.24
- 一起了解 .Net Foundation 项目 No.23