100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > vue解决图片加载失败显示默认图片的方法

vue解决图片加载失败显示默认图片的方法

时间:2019-04-07 02:14:37

相关推荐

vue解决图片加载失败显示默认图片的方法

在项目中经常会遇到图片加载失败需要显示默认图片的场景,那么如何在图片src资源加载失败显示出默认的图片呢?

方法一onerror

<img src="原来要加载的资源" onerror="默认的图片路径"/>

在vue项目中前面需要加个bind:

<img :src="imgSource" :onerror="default"/>

data(){return{imgSource:require('图片路径')default:'this.src="'+require('默认的图片路径')+'"'}}

但是有时候显示不出来默认图片,这个时候需要稍微修改下:

<img :src="imgSource?imgSource:'' " :onerror="default"/>

这样就可以在src资源加载失败显示出默认的图片

方法二:使用自定义指令

自定义指令defaultImg.js:

function install(Vue, options = {}) {/*** 检测图片是否存在* @param url*/let imageIsExist = function (url) {return new Promise((resolve) => {var img = new Image();img.onload = function () {if (plete == true) {resolve(true);img = null;}}img.onerror = function () {resolve(false);img = null;}img.src = url;})}Vue.directive(options.name || 'default-img', async function (el, binding) {//指令名称为:v-default-imgconst imgURL = el.src;//获取图片地址const defaultURL = binding.value;if (imgURL) {const exist = await imageIsExist(imgURL);if (exist) {el.setAttribute('src', imgURL);} else {el.setAttribute('src', defaultURL);}} else {el.setAttribute('src', defaultURL);}})}export default { install };

在main.js使用自定义指令:

import defaultImg from './directives/defaultImg';Vue.use(defaultImg);

在vue项目中使用:

<img :src="imgSource" v-default-img="default"/>

data(){return{imgSource:require('图片路径')default:require('默认的图片路径')}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。