Vue3图片懒加载

实现图片进入视图窗口加载图片

1.利用vueuse插件

1.1安装vueuse插件

npm i @vueuse/core

1.2引入useIntersectionObserver  //响应式监听目标元素的可见性。

具体详见useIntersectionObserver | VueUse中文文档

1.3创建组件方法

// 定义懒加载插件
import {useIntersectionObserver} from '@vueuse/core'
export const lazyPlugin = {
    install (app) {
        // 懒加载指令逻辑
        app.directive('img-lazy', {
            mounted (el, binding) {
                // el: 指令绑定的那个元素
                // binding: binding.value 指令等于号后面绑定的表达式的值
              
         const {stop} =  useIntersectionObserver(
                    el, ([{ isIntersecting }]) => {
                        console.log(el, binding.value);
                      if( isIntersecting) {  
                        el.src = binding.value
                        stop()
                      }
                    }
                )
            }
        })
    }
}

1.4 在main.js引入组件方法

// 引入懒加载指令插件并注册
import {lazyPlugin} from '@/directives'
app.use(lazyPlugin)

1.4 在需要懒加载图片的img元素上引用

<li v-for="item in contentList" :key="item.id">
<RouterLink to="/">
<img v-img-lazy="item.picture"  alt="" />
<p class="name">{{ item.name }}</p>
<p class="price">&yen;{{ item.price }}</p>
 </RouterLink>
</li>

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值