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="">
posted @   雾气^^  阅读(26)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示
主题色彩