直播带货app源码,前端商城图片资源优化
直播带货app源码,前端商城图片资源优化实现的相关代码
实现简单的懒加载
那么,懒加载怎么实现呢?实现的方式有两种。
通过scroll事件来监听视窗滚动区域实现。该方法兼容性好,绝大多数浏览器和WebView都兼容支持。
通过IntersectionObserver API观察DOM是否出现在视窗内,该方法优点在于调用简单,只是部分移动端兼容没有上一种方式好。
两种形式都是在观察当前DOM是否出现在了可视窗口内,如果出现的话就将data-src中的图片地址赋值给src,然后开始加载当前的图片。
那么,下面我们就开始着手实现一个基于scroll事件的懒加载示例吧。
页面布局
我们先画一个基本的页面布局出来,主要是将视窗和图片加载出来。
const ImageLazy = () => { const [list, setList] = useState([ 1,2,3,4,5,6,7,8 ]) const ref = useRef<HTMLDivElement | null>(null) return ( <div className="scroll-view" ref={ ref }> {list.map((id) => { return ( <div key={id} className="scroll-item"> <img style={{ width: '100%', height: '100%' }} data-src={ `${ prefix }split-${id}.jpg` } /> </div> ); })} </div> ) } .scroll-item { height: 200px; } .scroll-view { height: 400px; overflow: auto; }
注册scroll事件
为scroll-view绑定了ref之后,同时需要在useEffect中对scroll事件进行绑定和注销。
如下,我先获取当前组件所有的img元素(真实操作最好使用指定className),为ref.current进行addEventListener添加事件监听操作,然后在回调中执行对应的方法。
同时,在return的时候,也需要将其事件移除,避免造成一些意外情况。
useEffect(() => { const imgs = document.getElementsByTagName('img'); console.log(ref.current, 'current') ref.current?.addEventListener('scroll', () => { console.log('listens run') }) return ( ref.current?.removeEventListener('scroll', () => { console.log('listens end') }) ) }, [])
以上就是直播带货app源码,前端商城图片资源优化实现的相关代码, 更多内容欢迎关注之后的文章
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现