useHover
跟蹤滑鼠是否在元素上。
useHover 追蹤滑鼠是否懸停在目標元素上。它回傳一個布林值,在滑鼠進入元素時為 true,離開時為 false。支援可選的進入/離開延遲以實現防抖懸停效果。
使用場景
- 在滑鼠懸停時顯示工具提示或預覽內容
- 實作懸停時高亮或展開的 UI 效果
- 建構帶有延遲的懸停選單(防止意外觸發)
注意事項
- SSR 安全:在伺服器端渲染時回傳
false。伺服器上不會附加事件監聽器。 - 延遲:支援
enterDelay和leaveDelay選項以防抖懸停狀態變更。 - 相關 hooks:另請參閱
useMouse追蹤游標位置,以及useMousePressed追蹤按壓狀態。
Usage
Live Editor
function Demo() { const ref = useRef<HTMLDivElement>(null); const hovered = useHover(ref); return <div ref={ref}> {hovered ? "是" : "否"}</div>; };
Result
API
useHover
Returns
boolean
Arguments
| 參數名 | 描述 | 類型 | 預設值 |
|---|---|---|---|
| target | dom对象 | BasicTarget<T> (必填) | - |
BasicTarget
export type BasicTarget<T extends TargetType = Element> = (() => TargetValue<T>) | TargetValue<T> | MutableRefObject<TargetValue<T>>;
TargetValue
type TargetValue<T> = T | undefined | null;
TargetType
type TargetType = HTMLElement | Element | Window | Document | EventTarget;