开发自己的商城项目时想用上图片懒加载,但是百度了一下vue2的v-lazy在vue3已经被弃用了,因此便搜索vue3有没有类似的api但是并没有发现,因此从网上了解到了IntersectionObserver这样一个浏览器api,并用他实现了图片懒加载
图片懒加载的原理已经是老生常谈了,等到图片组件出现在视口内再加载图片,是一种很常见的优化手段,对于图片是否出现在视口的监听,我们仍然可以使用监听scroll
或者使用setInterval
来判断实现,但是监听scroll会有触发过于频繁而产生
性能问题,监听setInterval因为是
给其设定一个间歇执行的函数,与理想效果也会有出入,而IntersectionObserver提供了一种异步观察目标元素与其祖先元素或顶级文档视窗(viewport)交叉状态的方法(这是官方的说法),也就是可以实现监听元素在其祖先元素(默认顶级文档视窗)的可视状态
我们利用Vue3的自定义指