返回一个memoized值。把“创建”函数和依赖项数组作为参数传入useMemo,它仅会在某个依赖项改变时才重新计算memoized值。
这种优化有助于避免在每次渲染时都进行高开销的计算。
传入useMemo的函数会在渲染期间执行。请不要在这个函数内部执行与渲染无关的操作,诸如副作用这类的操作属于useEffect的适用范畴,而不是 useMemo。
如果没有提供依赖项数组,useMemo在每次渲染时都会计算新的值。
你可以把useMemo作为性能优化的手段,但不要把它当成语义上的保证。
将来,React 可能会选择“遗忘”以前的一些 memoized 值,并在下次渲染时重新计算它们,比如为离屏组件释放内存。
先编写在没有 useMemo 的情况下也可以执行的代码 —— 之后再在你的代码中添加 useMemo,以达到优化性能的目的。