React 用 IntersectionObserver 实现图片懒加载与无限滚动:封装一个 useInView Hook列表页一次渲染几十张图,首屏还没露脸的图片全都在偷偷加载,首屏白屏时间被拖长;或者做「滚到底自动加载下一页」,你监听 scroll 事件算 scrollTop + clientHeight >= scrollHeight,结果滚动时卡顿、还得手动防抖。这两个需求其实是同一个问题:怎么知道某个元素进没进视口。老办法(监听 scroll + getBoundingClientRect)又费性能又难写,现代做法是 IntersectionObserver。这篇带你封装一个可复用的 useInView Hook,