# 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);
最后更新: 9/8/2025, 1:30:33 PM