useEffect和useMemo有什么区别?

时间:2020-10-20 18:32:47

标签: javascript reactjs react-hooks

我想了解两者的用例。

1 个答案:

答案 0 :(得分:2)

useEffect允许您在值更改时(或组件首次呈现时)(异步)做某事。 “做某事”可能是任何事情-也许您想进行API调用或设置状态。或其他的东西。

useMemo完全不同-使用它可以使您仅在必要时计算值,然后(同步)使用它。如React文档所示:

const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);

computeExpensiveValue仅在 处计算昂贵的值,该值应该是纯净的-不应包含设置状态之类的任何东西。

例如,当组件加载并且我要进行后端调用时。我可以使用,useEffect还是useMemo吗?

在这种情况下,您不是在同步计算值,而是在采取行动,听起来好像它会异步设置状态,所以useEffect肯定会更多适当的选择。