首页 > 解决方案 > 何时使用 useCallback、useMemo 和 useEffect?

问题描述

和之间useCallback的主要区别是什么?useMemouseEffect

举例说明何时使用它们。

标签: reactjsreact-hooks

解决方案


一个简短的解释。

使用效果

componentDidMount它是类组件生命周期方法、componentWillUnmount、等的替代方案componentDidUpdate。您还可以使用它来在依赖关系发生变化时产生副作用,即“如果某些变量发生变化,请执行此操作”。

使用回调

在每次渲染时,功能组件内的所有内容都会再次运行。如果子组件依赖于父组件的函数,则每次父组件重新渲染时子组件都会重新渲染,即使该函数“没有改变”(引用发生了变化,但函数的作用不会' t)。
它用于通过避免来自子级的不必要渲染来进行优化,使函数仅在依赖项更改时更改引用。当函数是副作用的依赖项时,您应该使用它,例如useEffect.

使用备忘录

它将在每个渲染上运行,但具有缓存值。当某些依赖项发生变化时,它只会使用新值。当您有昂贵的计算时,它用于优化。这也是一个很好的答案来解释它


推荐阅读