实现图片懒加载

  1. 构建自定义指令
  2. 利用IntersectionObserver完成监测(此处我们直接用vueUse的useIntersectionObserver )
javascript 复制代码
//directive/index.js
// 图片一开始不加载,等到将要看到的时候再加载
import { useIntersectionObserver } from "@vueuse/core"
const imgLazy = {
	mounted(el) {
		//1.缓存当前的图片路径
		const catchSrc = el.src
		//2.把img.src变为占位图
		el.src = "占位图地址"
		//3.监听将要看到的
		const { stop } = useIntersectionObserver(el, ([{ isIntersecting }]) => {
			if(isIntersecting) {
				//4.渲染图片
				el.src = catchSrc
				//5.停止监听
				stop()
			}	
		})
	}
}

export default {
	// 在main.js中通过app.use使用
	install: (app) => {
		app.directive('imgLazy', imgLazy)
	}
}

组件中使用

javascript 复制代码
<img v-imgLazy src="图片地址"/>
相关推荐
IT_陈寒11 分钟前
Java线程池这破玩意,差点让我周末加班排查到凌晨
前端·人工智能·后端
Mr_Mao44 分钟前
告别选型困难!集 VueUse、ahooks、Mantine 于一身:286 个 Hook 的 ReaUse 来了
前端·javascript·react.js
泡海椒2 小时前
趋势分析报表:jquick-pdf折线图PDF生成实战
java·大数据·运维·服务器·前端·pdf
默_笙2 小时前
🚙 一条腿走路会摔:ES 关键词检索、混合召回与 ReRank 裁判
前端·javascript
YIAN2 小时前
从跨域代理到 WebSocket:梳理前端实时通信的底层逻辑与完整实践
前端·websocket
一曲终散2 小时前
创建 SVG 图标预览页面:从零实现到解决 CORS 问题
前端
静默回滚2 小时前
iPhone照片电脑上打不开:HEIC解码从原理到WASM
前端
dsyyyyy11012 小时前
Vue 3 Watch 监视完全指南
前端·javascript·vue.js
航飞光电市场经理3 小时前
人员定位系统“全栈自研”技术解析:从射频前端到定位引擎的架构拆解
前端·架构
Apifox3 小时前
Apifox 9 月更新|CLI 能力升级、GitLab 私有化部署接入与产品体验优化
前端·后端·测试