我试图理解useMemo和useCallback之间的区别,以及文档"useCallback(fn,deps)等同于useMemo(() => fn,deps)“中的这句话。
所以在useMemo中,我必须传递一个返回函数的函数?在useCallback中,我只返回一个函数。我得到了useCallback,但是我不确定useMemo和这个返回函数的函数(或者我全搞错了)。阅读SO的帖子在这里还不是很有帮助。
如果useMemo正在调用一个返回函数的函数,那么在react中调用第二个函数是什么时候?
发布于 2021-03-31 16:54:03
如果你想记住一个函数,你可以使用语法:useCallback(fn, deps),useCallback。但是如果你想记住函数的返回值,那么你应该使用useMemo,语法:useMemo(() => fn(), deps)
现在,如果我比较以下语句中的两个语法
useCallback(fn, deps)等同于useMemo(() => fn, deps)
在这里,对于useMemo,您没有调用fn,所以您得到的是函数本身,而不是它的返回值。在本例中,useCallback(fn, deps)和useMemo(() => fn, deps)都为您提供了带记忆的fn。
发布于 2021-03-31 19:28:57
useMemo
返回记忆中的值。这意味着它为你提供了价值的参考权益。
useCallback
返回记忆中的回调。这意味着它为您提供了函数的引用权益。
https://stackoverflow.com/questions/66880541
复制相似问题