异步加载图片

1. 使用场景

在图片访问比较慢的情况,可以优先给图片设置灰色的等待加载图,等到图片加载完成,替换原来的灰色占位图片。达到图片未加载时结构不乱,拥有页面效果;

2. JS 实现

// 异步加载图片
export function loadImageAsync(url) {
  return new Promise(function(resolve, reject) {
    const image = new Image();

    image.src = url;

    image.onload = function() {
      resolve(image);  // 返回 img 对象
      resolve(url);  // 也可返回 url 地址
    };

    image.onerror = function() {
      reject(new Error('Could not load image at ' + url));
    };
  });
}

在需要异步加载图片的时候,引入。

import { loadImageAsync } from "地址"
const imgUrl = DefaultImg;
const dataImg = "图片请求地址";

loadImageAsync(dataImg).then(res => {
    imgUrl = res;  //赋值新的 url 
}).catch(err => {
    console.log(error);
})
posted @ 2021-10-04 10:28  青柠i  阅读(227)  评论(0编辑  收藏  举报