reactjs - 何时使用 useCallback、useMemo 和 useEffect?
问题描述
和之间useCallback
的主要区别是什么?useMemo
useEffect
举例说明何时使用它们。
解决方案
一个简短的解释。
使用效果
componentDidMount
它是类组件生命周期方法、componentWillUnmount
、等的替代方案componentDidUpdate
。您还可以使用它来在依赖关系发生变化时产生副作用,即“如果某些变量发生变化,请执行此操作”。
使用回调
在每次渲染时,功能组件内的所有内容都会再次运行。如果子组件依赖于父组件的函数,则每次父组件重新渲染时子组件都会重新渲染,即使该函数“没有改变”(引用发生了变化,但函数的作用不会' t)。
它用于通过避免来自子级的不必要渲染来进行优化,使函数仅在依赖项更改时更改引用。当函数是副作用的依赖项时,您应该使用它,例如useEffect
.
使用备忘录
它将在每个渲染上运行,但具有缓存值。当某些依赖项发生变化时,它只会使用新值。当您有昂贵的计算时,它用于优化。这也是一个很好的答案来解释它。
推荐阅读
- python - 词形还原后如何获得单词的后缀(Python)?
- r - 如何使用预定义的级别剪切两个 Posixct 序列
- python - 我不明白这两行代码之间的区别以及它们为什么返回不同的结果
- git - Git如何压缩所有提交
- javascript - 为什么不比较就返回false?
- python - 使用 Pyspark df.select() 堆叠输出
- java - 使用父类型和子类型参数重载方法并在调用时传递 null。为什么调用带有子类型参数的方法
- sql - Oracle - 无法在“目标:”运行列表中查看包内的所有过程
- c# - 为什么获取私有属性一无所获?(C#)
- node.js - 错误:找不到模块,用于 controller.js 中的第三方库