vue3-图片懒加载指令实现

图片懒加载:有些网站页面比较长,用户不一定访问到页面靠下面的图片,这类图片通过懒加载优化手段可以做到只有进入视口区域才发送图片请求

指令用法

//在图片img身上绑定指令,该图片只有正式进入到视口区域时才会发送图片网络请求
<img v-img-lazy='item.picture' />  

使用Vueuse的一个函数来监听是否到达需要懒加载图片的位置,如果为true则发送图片请求

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

再main.js里面挂载lazyPlugin
在这里插入图片描述
应用懒加载
在这里插入图片描述
当然,如果不想麻烦,可以直接使用elementPlus里面的组件属性实现懒加载
在这里插入图片描述

相关推荐

  1. Vue3实现图片

    2024-01-21 22:28:02       48 阅读
  2. Vue3图片封装自定义指令

    2024-01-21 22:28:02       42 阅读
  3. Vue图片实现

    2024-01-21 22:28:02       29 阅读
  4. 自定义指令实现图片

    2024-01-21 22:28:02       55 阅读
  5. 关于如何实现图片

    2024-01-21 22:28:02       62 阅读
  6. IntersectionObserver实现图片

    2024-01-21 22:28:02       37 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-01-21 22:28:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-01-21 22:28:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-01-21 22:28:02       82 阅读
  4. Python语言-面向对象

    2024-01-21 22:28:02       91 阅读

热门阅读

  1. Spring超简单日志文件配置

    2024-01-21 22:28:02       60 阅读
  2. 前端和后端交互方式

    2024-01-21 22:28:02       52 阅读
  3. 1350 造海船

    2024-01-21 22:28:02       52 阅读
  4. 【UEFI基础】EDK网络框架(PXE)

    2024-01-21 22:28:02       52 阅读
  5. 【定制小程序:开启你的专属数字化之旅】

    2024-01-21 22:28:02       53 阅读
  6. 从0开始python学习-52.pytest之ddt数据封装

    2024-01-21 22:28:02       56 阅读
  7. C# 使用Bitmap 将byte[] 转成.jpg/.png/gif等图片

    2024-01-21 22:28:02       56 阅读