资源懒加载

对图像进行懒加载,只有当监听节点进入可视窗口内时,才开始加载,达到节省资源的效果。
主要通过Web API(IntersectionObserver)实现。
主要思路:

1、初始资源置为空,不展示;
2、创建一个可监听节点interRef;
3、若interRef进入指定区域内,则给图像赋值,开始加载资源;

import { useRef } from 'react'
import { useIntersection } from 'react-use'

function Demo() {
const [imgSrc, setImgSrc] = useState('') // 图像资源地址
const interRef = useRef() // 绑定监听节点

useEffect(() => {
    if (intersection && intersection.isIntersecting) { // 监听节点进入可视区
	setImgSrc(xxx) // 图像地址赋值为实际地址
    }
}, [intersection])

const intersection = useIntersection(interRef, {
    root: null, // 指定根元素(目标元素的父元素),未指定则默认浏览器视窗
    rootMargin: '0px', // 根元素的外边距,类似于css的margin属性"top right bottom left"
    threshold: 1, // target和root相交程度达到该值时触发回调,1表示targe完全出现在root中时才会回调
})
return <div>
    <div ref={interRef}></div>
    {imgSrc && <img src={imgSrc} alt='' />}
</div>
}

Intersection Observer 完全解读

IntersectionObserver

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值