Skip to content

useMemo

类似于computed吧,缓存昂贵的计算(就是避免重复计算)

看起来像useEffect,不过副作用是马后炮,渲染后再执行,而这里仅仅为了缓存,仍然是在挂载前执行的。

tsx
useMemo((a,b)=>{
  // computing
}, []/*依赖数组*/)

useCallback

用于缓存你生成的函数

比如你给子组件传递了一个回调,如果你的回调只是一个普通的局部变量,那么在下次执行时肯定会重新创建,从而导致子组件重新渲染。所以你的这个回调应该用它来包裹,以实现缓存

tsx
const cachedCallback = useCallback(callback, [] /*依赖数组*/)