跳到主要内容

DOM Hooks

DOM 操作相关的 Hooks 集合。

useClickOutside

监听元素外部点击的 Hook。

import { useClickOutside } from 'taro-uno';

function Demo() {
const ref = useRef(null);

useClickOutside(ref, () => {
console.log('点击了外部');
});

return (
<div ref={ref}>
点击外部区域会触发回调
</div>
);
}

API

参数说明类型
ref目标元素的 refRefObject<HTMLElement>
handler点击外部时的回调() => void

useEventListener

添加事件监听器的 Hook。

import { useEventListener } from 'taro-uno';

function Demo() {
const [key, setKey] = useState('');

useEventListener('keydown', (event) => {
setKey(event.key);
});

return <p>按下的键: {key}</p>;
}

API

参数说明类型
eventName事件名称string
handler事件处理函数(event: Event) => void
element目标元素RefObject<HTMLElement> | Window
options事件选项AddEventListenerOptions

useEventHandling

统一事件处理的 Hook。

import { useEventHandling } from 'taro-uno';

function Demo() {
const { handleClick, handleTouch } = useEventHandling({
onClick: (e) => console.log('clicked', e),
onTouchStart: (e) => console.log('touch start', e),
});

return (
<div
onClick={handleClick}
onTouchStart={handleTouch}
>
点击或触摸
</div>
);
}

API

参数说明类型
handlers事件处理函数集合EventHandlers

返回值

参数说明类型
handleClick点击事件处理(e: MouseEvent) => void
handleTouch触摸事件处理(e: TouchEvent) => void
handleKeyDown键盘事件处理(e: KeyboardEvent) => void