繁体   English   中英

useMemo(()=>()=>{}, []) 和 useCallback(()=>{}, []) 一样吗?

[英]Is useMemo(()=>()=>{}, []) the same as useCallback(()=>{}, [])?

我很确定答案是肯定的。 但是对于那些可能认为useCallback记住结果的人来说https://reactjs.org/docs/hooks-reference.html#usecallback states

useCallback 将返回回调的记忆版本

不是结果。 也不会构建一个记忆的回调。

无论如何,如果useMemo(()=>()=>{...}, [])是为了解决对useCallback功能的误解,它是否与useCallback(()=>{}, [])相同?

医生说他们是一样的:

useCallback(fn, deps) 等同于 useMemo(() => fn, deps)。

useMemouseCallback要记住的另一件事是:

您可能依赖 useMemo 作为性能优化,而不是语义保证。 在未来,React 可能会选择“忘记”一些以前记忆的值并在下一次渲染时重新计算它们,例如为屏幕外组件释放内存。 编写您的代码,使其在没有 useMemo 的情况下仍能正常工作——然后添加它以优化性能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM