当前位置: 首页 > article >正文

Vue 3 项目里通过自定义指令实现图片懒加载

本文只说明代码如何实现,例如自定义指令、插件的基础知识请移步Vue官方文档。

说明:useIntersectionObserver 是VueUse里面用于检测目标元素是否在可视区域的一个函数。

安装VueUse

npm i @vueuse/core

src/directive/index.js

import { useIntersectionObserver } from "@vueuse/core"

export const lazyDirective = {
    install(app) { 
        app.directive('lazy', (el, binding) => {
            const { stop } = useIntersectionObserver(el, ([{ isIntersecting }]) => {
                // 图片进入可视区域
                if (isIntersecting) {
                    el.src = binding.value
                    stop() // 只需观察一次元素,避免重复观察
                }
            })
        })
    }
}

main.js

import { lazyDirective } from './directive'

app.use(lazyDirective)

注:本文使用了Vue中自定义指令和插件结合的方法实现 


http://www.kler.cn/news/360710.html

相关文章:

  • 02_MVCC-版本链管理
  • json路径 [‘a‘].b.c[0].d[‘1‘].f,具体代表什么意思
  • 无人机之标校技术篇
  • Java项目-基于springboot框架的网上图书商城项目实战(附源码+文档)
  • springboot034在线商城系统设计与开发-代码(论文+源码)_kaic
  • 「UCD」ComfyUI设计提效工具
  • 滚雪球学Redis[9.1讲]:Redis常见问题排查指南:解决错误、优化性能与确保数据一致性
  • sql高级
  • APIJSON 为零代码提供了新的思路
  • H-TCP 的效率和公平性
  • oracle19c的k8s部署
  • 【可答疑】基于51单片机的智能空调(含仿真、代码、报告、演示视频等)
  • Java密封类(Sealed Classes)增强详解
  • WPF入门_04绑定
  • 《黑神话悟空》各章节boss顺序汇总
  • 2024.10月22日- MySql的 补充知识点
  • 《Python游戏编程入门》注-第2章2
  • 【数据结构与算法】走进数据结构的“时间胶囊”——栈
  • go开发过程中mapstructure使用,
  • Windows性能监控与调优:让电脑运行如飞