vue.js - 在 src 更改时用占位符替换图像

标签 vue.js

我有一个带有绑定(bind) src 值的图像

<img :src="image.url">

image.url 更新时,旧图像会保留在原位,直到加载新图像。这看起来有点奇怪,因为新图像在更改时滞后于文本详细信息。

src 属性随 vue.js 发生变化时,如何用加载指示器替换图像?

我可以使用触发更改并且有效的代码添加 DOM 操作,但我宁愿使用 vue 绑定(bind)正确地完成它。

最佳答案

这应该让您走上正确的轨道:

  1. 有一个imageLoading data() 中的属性功能。
  2. 按如下方式设置您的 :src:<img :src="imageLoading ? ./myPlaceholder.png : image.url" />
  3. $watch your image.url 以在它发生变化时设置加载图像:
watch: {
  'image.url': function() {
    this.imageLoading = true;
  }
  1. 将 @load 处理程序添加到您的 img 标记以在图像加载时将 imageLoading 设置为 false:<img :src="imageLoading ? ./myPlaceholder.png : image.url" @load="imageLoading = false" />

关于 @load 处理程序的注意事项 - 从 this question 无耻地窃取了,它确实链接到示例。

关于vue.js - 在 src 更改时用占位符替换图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59581626/

相关文章:

javascript - 来自服务器数据的 Vue2 路由器链接

vue.js - 如何限制按钮的增量?

javascript - 如何在 vuetify 中创建可滚动的 v-list?

javascript - 将带有空格的 div 名称传递给 Vue

javascript - .vue 文件中的 Vue.js 渲染函数

vue.js - VueJS 过滤器不工作

javascript - 使用 v-for 填充组件的 Vuex getter

vue.js - Vuetify 自定义 v-text-field 组件不更新 v-model

javascript - 使用 v-html 和 <transition> 时无法读取 null 的属性 '_pending'

javascript - 如何检查两个日期数组是否有匹配的项目?