useMemo
是一个 React Hook,它在每次重新渲染的时候能够缓存计算的结果。useMemo
不会让首次渲染更快,它只会帮助你跳过不必要的更新工作。你应该仅仅把 useMemo
作为一个性能优化的手段。
const cachedValue = useMemo(calculateValue, dependencies)
参数
calculateValue
:要缓存计算值的函数。它应该是一个没有任何参数的纯函数,并且可以return
任意类型。React 将会在首次渲染时调用该函数;在之后的渲染中,如果dependencies
没有发生变化,React 将直接返回相同值。否则,将会再次调用calculateValue
并返回最新结果,然后缓存该结果以便下次重复使用。- 可选
dependencies
:是一个数组[dep1, dep2, dep3]
,React 将使用Object.is
来比较每个依赖项和它先前的值。需要注意的是dependencies
的长度和顺序不能改变。