动态导入项目内部的图片地址
时间: 2024-10-27 08:13:39 浏览: 17
在Vue.js中,动态导入项目内部的图片地址可以利用`import()`函数配合`<img>`标签的`lazy`属性来实现。这适用于大型图片或在页面滚动到某个位置时才需要加载的图片,以提高首屏加载速度。下面是一个例子:
```vue
<template>
<div>
<img :src="getLazySrc()" lazy src="/placeholder.png" alt="图片加载中...">
</div>
</template>
<script>
export default {
data() {
return {
loadedImage: null,
};
},
methods: {
async getLazySrc() {
const imageUrl = 'path/to/your/image.jpg'; // 替换为你项目的实际图片路径
const imageBlob = await fetch(imageUrl).then(res => res.blob());
const imgElement = document.createElement('img');
imgElement.src = URL.createObjectURL(imageBlob);
// 等待图片加载完成
await new Promise(resolve => imgElement.onload = resolve);
// 清理blob引用,防止内存泄漏
URL.revokeObjectURL(imgElement.src);
return imgElement.src;
},
},
};
</script>
```
在这个例子中,`getLazySrc`方法首先异步地从服务器获取图片的二进制流,创建一个URL,然后等待图片加载完毕。当图片加载完成后,返回真实的图片URL供`<img>`标签使用。`lazy`属性让浏览器仅在图像进入视口时开始加载。
阅读全文