# ahooks
是一套高质量可靠的 React Hooks 库。在当前 React 项目研发过程中,一套好用的 React Hooks 库是必不可少的
# useMemoizedFn
持久化 function 的 Hook,一般情况下,可以使用 useMemoizedFn 完全代替 useCallback
在某些场景中,我们需要使用 useCallback 来记住一个函数,但是在第二个参数 deps 变化时,会重新生成函数,导致函数地址变化。
const [state, setState] = useState('');
// 在 state 变化时,func 地址会变化
const func = useCallback(() => {
console.log(state);
}, [state]);
使用 useMemoizedFn,可以省略第二个参数 deps,同时保证函数地址永远不会变化。
const [state, setState] = useState('');
// func 地址永远不会变化
const func = useMemoizedFn(() => {
console.log(state);
});
# useClickAway
使用场景:当需要在用户点击了某个元素外部时触发一个回调函数,例如关闭下拉菜单、模态框等。
const [counter, setCounter] = useState(0);
const ref = useRef(null);
useClickAway(() => {
setCounter(c => c + 1);
}, ref);
← antd