美文网首页
前端VUE项目中如何处理图片加载失效/裂开的问题

前端VUE项目中如何处理图片加载失效/裂开的问题

作者: Nanshannan | 来源:发表于2021-11-23 22:32 被阅读0次

PS:以下只是个人处理方式进行记录

处理方式概述:可以借用img标签的onerror事件,通过自定义指令进行赋值

1. v-imgerror为img的自定义指令
<template>
  <img v-imgerror="defaultImg" :src="staffPhoto" class="user-avatar">
</template>

2. 将自定义组件统一封装到一个JS文件中
// v-imgerror="备用图地址" 
export const imgerror = {
  inserted(el, binding) {
   // el 指令所在的元素  也就是我们的img标签
   // binding 指令的相关信息对象
    el.onerror = function() {
      // console.log('图片加载失败了'), 设置备用图片地址
      el.src = binding.value      // binding.value 指令的值 也就是我们的defaultImg
    }
  }
}
3. 组件中引入备用图片
import Img from '@/assets/common/head.jpg'
 data() {
    return {
      defaultImg: Img
    }
  }
4. 将封装的自定义指令挂载到Vue上(main.js)
// import { imgerror } from '@/directives'
import * as ALLdirectives from '@/directives'
// 遍历得到的对象, 批量进行自定义指令的注册
for (const key in ALLdirectives) {
  // console.log(key, directives[key])
  Vue.directive(key, ALLdirectives[key])
}

相关文章

网友评论

      本文标题:前端VUE项目中如何处理图片加载失效/裂开的问题

      本文链接:https://www.haomeiwen.com/subject/wregtrtx.html