实现图片懒加载

  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="图片地址"/>
相关推荐
CHANG_THE_WORLD2 分钟前
switch case 二分搜索风格
前端·数据库
我的golang之路果然有问题2 分钟前
实习中遇到的 CORS 同源策略自己的理解分析
前端·javascript·vue·reactjs·同源策略·cors
Pony_185 分钟前
面试 - web ui 自动化
前端·ui·自动化
EndingCoder11 分钟前
接口基础:定义对象形状
linux·运维·前端·javascript·typescript
passerma33 分钟前
解决qiankun框架子应用打包后css里的图片加载404失败问题
前端·微前端·qiankun
Aliex_git1 小时前
性能优化 - Vue 日常实践优化
前端·javascript·vue.js·笔记·学习·性能优化
董世昌411 小时前
添加、删除、替换、插入元素的全方法指南
java·开发语言·前端
qq_316837751 小时前
Element-Plus el-table lazy 自动更新子列表
前端·vue.js·elementui
林恒smileZAZ1 小时前
Electron 的西天取经
前端·javascript·electron
这就是佬们吗1 小时前
告别 Node.js 版本冲突:NVM 安装与使用全攻略
java·linux·前端·windows·node.js·mac·web