使用react,Intersection

时间2023-06-05 16:32:02 提问来自 Central and Western DistrictCentral 的网友 分类ChatGPT提问 浏览202 热度0
vers API,实现一个图片懒加载 ```jsx import React, { useEffect, useRef } from "react"; import { intersectionObserver } from "./intersectionObserver"; export const LazyImage = ({ src, alt }) => { const imageRef = useRef(null); useEffect(() => { let observer; if (imageRef.current) { observer = intersectionObserver(imageRef.current, () => { // 加载图片的地址替换占位符的地址,并显示图片。 imageRef.current.src = src; // 替换占位符的地址 imageRef.current.classList.remove("lazy"); // 显示图片 observer && observer.unobserve(imageRef); // 停止监听该元素,避免重复加载。 }); } return () => observer && observer.disconnect(); // 组件卸载时,释放监听对象。 }, [src]); // 监听 src 变化。 return <img ref={imageRef} className="lazy" data-src={src} alt={alt} />; };         // 初始时使用 lazy 类隐藏图片,并添加 data-src 属性存储真实地址。     // 该属性可以隐式传递真实地址到 IntersectionObservers API中去监听该元素是否出现了可视区域中去。                  // 若出现则执行 callback (动态加载图片) , 避免不必要的浪费带宽下行流量

AI智能问答网免责声明:
以上内容除特别注明外均来源于网友提问、ChatGPT回答,权益归原著者所有,本站仅作效果演示和欣赏之用;
若以上展示有冒犯或侵害到您,敬请联系我们进行删除处理,谢谢!

上一篇 使用react实现一个瀑布流的组件,包含 下一篇 搜索框的用法