useEventEmitter
基础的事件触发器
Usage
实时编辑器
function Demo() { const [state, setState] = useState(0); const [event, fire, dispose] = useEventEmitter<number>(); const event1 = useRef<IDisposable>(); useEffect(() => { event((val) => { setState(s => s + val); }); event1.current = event(val => setState(s => s + val + 10)); }, [event]); return ( <div> <div>状态: {state}</div> <button onClick={() => fire(1)}>触发</button> <button onClick={() => dispose()}>清除所有</button> <button onClick={() => event1.current?.dispose()}>清除单个</button> </div> ); }; render(<Demo/>)
结果
状态: 0
API
useEventEmitter
Returns
readonly [UseEventEmitterEvent<T, U>, (arg1: T, arg2: U) => void, () => void]: 包含以下元素的元组:
- 添加监听器的函数。
- 触发函数。
- 停止函数。