vue3使用自定义指令实现图片懒加载
// 自定义指令
app.directive('lazy', {
mounted(el, binding) { // 绑定的元素,绑定的值
// IntersectionObserver可以用来自动监听元素是否进入了设备的可视区域之内,而不需要频繁的计算来做这个判断
const observe = new IntersectionObserver(([{isIntersecting}]) => {
if (isIntersecting) { // 如果进入了可视区
console.log("进入了")
// 停止观察,加载出来之后就不需要继续观察了
observe.unobserve(el)
console.log(el,binding.value,) // binding.value就是绑定的地址
// 将地址给src显示
el.src = binding.value
}
})
observe.observe(el)// 使用observe上的observe方法观察这个dom元素
}
})
模板中使用
<img v-lazy="`src/assets/2yz3m9.jpg`" alt="">
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)