reactjs - 我应该在自定义钩子中记住函数吗?
问题描述
我有计数器组件。我用自定义钩子封装了业务逻辑。我应该通过手段优化功能useCallback
吗?如果有input onchange handler,情况会不会一样?
const increment = () => {
setCount(count + 1);
};
↓</p>
const increment = useCallback(() => {
setCount(count + 1);
}, [count]);
解决方案
在功能组件范围内声明的每个函数都应该是memoized
或cached
with useCallback
。如果它引用组件范围内的其他变量或函数,它应该在其dependency list
. 否则,每次prop/state
更改都将重新创建一个很少使用的功能。
但请记住在优化之前进行测量。- 即使是官方文档也说要轻松。
推荐阅读
- verilog - Verilog错误“连续赋值输出必须是网络”
- javascript - 引导标签输入 maxTag 在函数内不起作用
- javascript - 如何让我的复选框以 true 开头?
- python-3.x - 为什么我们使用 key=get 进行排序,key 方法是如何工作的
- java - 如何将在 EditText 控件中输入的值与 android studio 中微调器容器中的项目绑定在一起?
- version-control - 是否有类似 GitGraph 的 perforce 功能?
- javascript - 如何使用 Javascript 旋转这张卡片?
- visual-studio-code - 在 VSCode 中打开终端时的默认目录
- php - phpmyadmin: mysqli_real_connect(): (HY000/2002): 没有这样的文件或目录 - Ubuntu 20.04, phpmyadmin 4:4.9.5+dfsg1-2
- scala - 在 Scala 中使用 Flink 时,如何从类型类的 DataStreamSource 中提取值?