el-image的src赋值了一个接口中返回的图片地址,为什么接口请求了两次呢?
给el-iamge设置key和更改lazy的状态都没有区别,还是加载了两次
currentPicture初始是null,是通过接口拿到图片完整地址进行赋值的
搭了个 Demo 测试了一下,这应该算是一个已知问题 Element UI #19712。
引起这个问题的原因是在组件内部,根据 loading 的变化,使用 v-if
来控制了 img 标签和占位图片的显示与隐藏,使得 Vue 重新渲染了组件。
当 el-image 加载完图片后,会调用内部的 handleLoad 方法来修改 loading 的值。
从而导致了重新渲染。
等效于下面的代码:
<div id="b1"> <img src="https://www.baidu.com/img/PCtm_d9c8750bed0b3c7d089fa7d55720d6cf.png" alt=""></div><script> setTimeout(() => { const image = new Image(); const src = 'https://i.imgur.com/xUbINne.png'; image.src = src; image.onload = function () { b1.innerHTML = `<img src="${src}">`; }; }, 1000);</script>
上面这个说法有点问题,主要还是因为加载方式的原因,el-image 会先在 js 代码中使用 new Image 的形式去加载一次图片,这就是第一个请求。而第二个请求则 Vue 在渲染 img 标签的时候触发的,这也应当是符合预期的。
其实如果你看了上面的 issues ,你就会发现,如果在 Devtools 中的 Network 面板上取消了 Disable cache
就只会有一条加载,正如另一个回答中的不能复现问题一样。
解决办法:暂无
一般来说,你可以不用关心,因为实际生产中,图片资源都会配置缓存策略,正常浏览时不受影响的。
跟el-image
应没关系,否则早就被人提issue
了,得看看你代码其余部分做了什么。
我也跑去验证了下,没有你的那种情况,初始发起了null
用v-if
处理下就好了。
v-if
处理后:
问题如题: 后端提供了一个接口地址是用来查询用户信息的,用管理员账号进入菜单则没有任何问题,但是换一个普通用户则请求都发不出去。 1.发送请求的截图 2.请求不通那个账号的请求截图 排查方式: 1.通过postman请求nginx,设置不同token,管理员token正常返回,普通用户token,则长时间等待后,返回nginx的404页面。 2.通过postman请求后端gateway网关应用,使
vue3请求时地址栏的地址和请求的地址拼接在一起了怎么解决?
前端请求接口传参时,数组的字段为什么被拆开了 deptId: 29 beginDate: 2024-08-01 endDate: 2024-08-31 isExtra: 0 specialType[]: instru specialType[]: night specialType[]: stunt specialType原本是string[], specialType:['instru','ni
最近项目中一直会出现一个比较奇怪的现象:偶尔有用户会重复触发某个接口,但是埋点记录能确定在前端的代码里只发起了一次,前端也没重试的机制。从用户的UA以及环境找不到共同点,在网上搜了下说有可能是nginx的重试机制 https://www.cnblogs.com/caibaotimes/p/15407971.html 我们的项目都是走公司统一的结构、构建以及发布(react)所以我想问下 1、怎么确
引入子组件 子组件中获取选中的id ///根据id取调用接口查数据
问题内容: @Entity public class Husband implements Serializable { 广义上是什么? 类为什么实现接口? 为什么丈夫成员一个人只有@OnetoOne(mappedBy =“ Wife”),而妻子成员却没有@OnetoOne(mappedBy =“ husband”) 问题答案: 广义上讲,序列化是Java为开发人员提供的将任何对象的状态持久保存到