91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何在Vue中處理錯誤圖片

發布時間:2021-04-17 17:09:37 來源:億速云 閱讀:212 作者:Leah 欄目:web開發

如何在Vue中處理錯誤圖片?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

第一種方法,也就是百度到的最多的代碼,就是給一張圖片一個默認值。

如何在Vue中處理錯誤圖片

如何在Vue中處理錯誤圖片

第二種問題,如果頁面中有很多地方都存在這個東西,那么在不同的頁面中寫很對是很麻煩的。

就使用到了VUe的指令。

這里分為了兩種情況, 一種是直接加載默認圖片,等圖片加載完成之后再使用加載完成的圖片 。

代碼如下

// 如果自定義指令多的話,再重新開啟一個文件專門寫自定義指令 太亂了
//全局注冊自定義指令,用于判斷當前圖片是否能夠加載成功,可以加載成功則賦值為img的src屬性,否則使用默認圖片
//指令名稱為:real-img
// 通用錯誤圖片的處理方法,或者也可以懶加載的樣子
Vue.directive('real-img', async function (el, binding) {
 let imgURL = binding.value;//獲取圖片地址
 if (imgURL) {
  let exist = await imageIsExist(imgURL);
  if (exist) {
   el.setAttribute('src', imgURL);
  }
 }
});

/**
* 檢測圖片是否存在
* @param url
*/
let imageIsExist = function (url) {
 return new Promise((resolve) => {
  var img = new Image();
  img.onload = function () {
   if (this.complete == true) {
    console.log('資源加載');
    resolve(true);
    img = null;
   }
  }
  img.onerror = function () {
   console.log('資源error', img);
   resolve(false);
   img = null;
  }
  img.src = url;
 })
};

使用方式

<div class="appd_d_ch_logo">
<img src="../../assets/img/error/app_d.png" v-real-img="appDetail.icon" alt="">
</div>

第二種是直接加載圖片,等到加載失敗的時候使用默認圖。

/**
* 檢測圖片是否存在
* @param url
*/
let imageIsExist = function (url) {
 return new Promise((resolve) => {
  var img = new Image();
  img.onload = function () {
   if (this.complete == true) {
    console.log('資源加載');
    resolve(true);
    img = null;
   }
  }
  img.onerror = function () {
   console.log('資源error', img);
   resolve(false);
   img = null;
  }
  img.src = url;
 })
};



// 單獨作用于應用模塊的管理
// 傳的是錯誤的圖片
Vue.directive('err-img', async function (el, binding) {
 let imgURL = binding.value;//獲取圖片地址
 let realURL = el.src;
 if (imgURL) {
  let exist = await imageIsExist(realURL);
  if (!exist) {
   el.setAttribute('src', imgURL);
  }
 }
});

Vue文件中使用方式如下

<div class="appd_d_ch_logo">
<img src="../../assets/img/error/app_d.png" v-real-img="appDetail.icon" alt="">
</div>

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

vue
AI

土默特左旗| 云阳县| 叙永县| 荆州市| 勃利县| 同心县| 英吉沙县| 华池县| 额尔古纳市| 吴江市| 沭阳县| 四平市| 出国| 惠州市| 东源县| 沙洋县| 大庆市| 四平市| 田阳县| 萝北县| 古浪县| 日照市| 波密县| 垣曲县| 阳新县| 屏山县| 杭锦旗| 利津县| 个旧市| 新河县| 天台县| 云霄县| 广德县| 茌平县| 铁力市| 甘南县| 星座| 沙湾县| 田阳县| 平阴县| 玛曲县|