例如,监听窗口滚动加载下一页交互
推荐使用 Intersection Observer API。它比滚动事件监听器更高效,因为它不会在每次滚动时触发。以下是完整的示例代码:
import { useEffect, useRef } from 'react';
export default function Page() {
const loadMoreRef = useRef(null);
useEffect(() => {
const observer = new IntersectionObserver((entries) => {
if (entries[0].isIntersecting) {
// 触发加载下一页内容的逻辑
console.log('加载下一页内容');
}
});
if (loadMoreRef.current) {
observer.observe(loadMoreRef.current);
}
return () => {
if (loadMoreRef.current) {
observer.unobserve(loadMoreRef.current);
}
};
}, []);
return (
<div>
<h1>页面内容</h1>
{/* 你的页面内容 */}
<div ref={loadMoreRef} style={{ height: '1px' }}></div>
</div>
);
}
9 回答10k 阅读
3 回答11.4k 阅读✓ 已解决
4 回答8.8k 阅读✓ 已解决
7 回答10.5k 阅读
2 回答11.3k 阅读✓ 已解决
6 回答2.6k 阅读
2 回答10.9k 阅读✓ 已解决
用 client 组件,在 useEffect 里绑定事件就好。