useMemo和useCallback

334 阅读1分钟

要不要使用useMemo和useCallback

哪些情况一个组件会重新渲染

  1. 组件自己的state变化;
  2. 父组件传递过来的props变化;
  3. 父组件重新渲染。

useMemo使用场景

如果一些值的计算量很大,那么可以用useMemo来做一个缓存,只有依赖变化时才会重新计算,而不是每次渲染时都进行计算。

useCallback使用场景

  1. 对于需要传递函数给子组件的场合,不使用useCallback的话,子组件每次都会重新渲染;
  2. 在调用节流、防抖函数时。

个人观点

  • 在出现性能问题后,进行优化时可以考虑使用useMemo和useCallback对性能进行一定的优化;
  • 如果没有性能问题可以不用,这样更专注于代码本身的逻辑。

---转自findxc 哔哩哔哩