要不要使用useMemo和useCallback
哪些情况一个组件会重新渲染
- 组件自己的state变化;
- 父组件传递过来的props变化;
- 父组件重新渲染。
useMemo使用场景
如果一些值的计算量很大,那么可以用useMemo来做一个缓存,只有依赖变化时才会重新计算,而不是每次渲染时都进行计算。
useCallback使用场景
- 对于需要传递函数给子组件的场合,不使用useCallback的话,子组件每次都会重新渲染;
- 在调用节流、防抖函数时。
个人观点
- 在出现性能问题后,进行优化时可以考虑使用useMemo和useCallback对性能进行一定的优化;
- 如果没有性能问题可以不用,这样更专注于代码本身的逻辑。
---转自findxc 哔哩哔哩