From f9ee1970864730d4ac7a30c06ad6758cbb429463 Mon Sep 17 00:00:00 2001 From: Mikuisnotavailable Date: Sat, 10 Jan 2026 09:23:24 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=BC=A0=E6=A0=87=E8=B7=9F?= =?UTF-8?q?=E9=9A=8F=E5=85=83=E7=B4=A0=E6=80=A7=E8=83=BD=EF=BC=8C=E6=B7=BB?= =?UTF-8?q?=E5=8A=A0=E9=98=B2=E6=8A=96=E5=92=8CGPU=E5=8A=A0=E9=80=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/app/page.tsx | 23 +++++++++++++++++------ 1 file changed, 17 insertions(+), 6 deletions(-) diff --git a/src/app/page.tsx b/src/app/page.tsx index 2a10a68..08e1df0 100644 --- a/src/app/page.tsx +++ b/src/app/page.tsx @@ -23,11 +23,23 @@ export default function Home() { const [isHovered, setIsHovered] = useState(false); useEffect(() => { + // 添加防抖处理,减少状态更新频率 + let timeoutId: NodeJS.Timeout; + const handleMouseMove = (e: MouseEvent) => { - setMousePosition({ x: e.clientX, y: e.clientY }); + // 使用防抖,每16ms更新一次(约60fps) + clearTimeout(timeoutId); + timeoutId = setTimeout(() => { + setMousePosition({ x: e.clientX, y: e.clientY }); + }, 16); }; + window.addEventListener('mousemove', handleMouseMove); - return () => window.removeEventListener('mousemove', handleMouseMove); + + return () => { + window.removeEventListener('mousemove', handleMouseMove); + clearTimeout(timeoutId); + }; }, []); const features = [ @@ -71,11 +83,10 @@ export default function Home() {