首页 > 解决方案 > 反应:useEffect vs useMemo vs useState

问题描述

我试图在网上找到一个简洁的答案,但没有运气。

以下关于和之间useEffect的差异是否正确?useMemouseState

我错过了任何其他关键差异吗?

标签: javascriptreactjsreact-hooks

解决方案


你的观点基本上是正确的,一些小的澄清:

useState在调用 setState 方法时导致重新渲染(返回数组中的第二个元素)。它没有任何依赖,例如 useMemo 或 useEffect。

useMemo仅在其依赖数组中的元素发生更改时重新计算一个值(如果没有依赖项 - 即数组为空,它将只重新计算一次)。如果数组被遗漏,它将在每次渲染时重新计算。调用该函数不会导致重新渲染。它还在组件渲染期间而不是之前运行。

如果其依赖数组中的元素已更改或数组被遗漏,则在每次渲染调用useEffect 。如果数组为空,它只会在初始挂载时运行一次(如果返回清理函数则卸载)。

您可以随时查看Hooks API Reference,在我看来这是一个非常可靠的文档


推荐阅读