我使用useMemo创建了一个沙箱,按照Kent C Dodds在这篇文章中的例子来优化模拟昂贵函数。记忆似乎不起作用。知道为什么吗?
https://codesandbox.io/s/usememo-rfphn?file=/src/index.tsx
useMemo()实际上在您的代码中正常工作
你有:
const value = useMemo(() => wait(duration), [duration]);
useMemo()
每次依赖关系中的任何值发生变化时都重新计算它的值,并且你的依赖关系数组中每次都有变化的[duration]
,你点击setDuration()
按钮。
如果你想看到useMemo()
工作,让组件重新渲染而不改变它的依赖。