先创建一个全局指令
export default {
mounted(el) {
const imgsrc = el.src //先记下图片路径
el.src = ''
const Observer = new IntersectionObserver(([{isIntersecting}]) => { //可以打印这个api,在加载的时候isIntersecting为true,离开的时候isIntersecting为false
if(isIntersecting){
el.src = imgsrc
Observer.unobserve(el) // 关闭观察
}
})
Observer.observe(el) //开启观察
}
}
再全局注册main.js
app.directive('lazy', lazy)
<img v-lazy src="./assets/1.jpg" alt=""/>