首页 > 解决方案 > 我应该在自定义钩子中记住函数吗?

问题描述

我有计数器组件。我用自定义钩子封装了业务逻辑。我应该通过手段优化功能useCallback吗?如果有input onchange handler,情况会不会一样?

const increment = () => {
    setCount(count + 1);
};

↓</p>

const increment = useCallback(() => {
    setCount(count + 1);
}, [count]);

标签: reactjsreact-hooksusecallback

解决方案


在功能组件范围内声明的每个函数都应该是memoizedcachedwith useCallback。如果它引用组件范围内的其他变量或函数,它应该在其dependency list. 否则,每次prop/state更改都将重新创建一个很少使用的功能。

但请记住在优化之前进行测量。- 即使是官方文档也说要轻松。


推荐阅读