vue如何写一个渐进式图片组件?
网友回复
可以使用Vue.js和Intersection Observer API来实现延迟加载图片,以提高页面性能。以下是一个简单的示例:
<template>
<div>
<img
ref="image"
:src="placeholder"
alt="Placeholder Image"
@load="onImageLoad"
/>
</div>
</template>
<script>
export default {
props: {
src: {
type: String,
required: true, // 图片的真实来源
},
placeholder: {
type: String,
required: true, // 占位图片,可以是模糊或低分辨率的图像
},
},
data() {
return {
imageLoaded: false,
};
},
methods: {
onImageLoad() {
this.imageLoaded = true;
},
},
mounted() {
const options = {
root: null, // 使用viewport作为根元素...点击查看剩余70%


