Skip to main content

自定义hook

一个自定义 Hook 是一个普通的 JavaScript 函数,以 use 开头命名(符合约定)。它可以使用其他的 Hook,也可以包含自己的状态、副作用等。

自定义 Hook 将组件中与特定逻辑相关的代码进行抽离,使这些逻辑能够独立存在并可以在多个组件中重复使用。

以下是一个自定义 Hook,用于追踪页面上的鼠标位置

index.tsx
import { useState, useEffect } from 'react';

function useMousePosition() {
const [position, setPosition] = useState({ x: 0, y: 0 });

useEffect(() => {
const handleMouseMove = (event) => {
setPosition({ x: event.clientX, y: event.clientY });
};

window.addEventListener('mousemove', handleMouseMove);

return () => {
window.removeEventListener('mousemove', handleMouseMove);
};
}, []);

return position;
}