kangyana / daily-question

When your heart is set on something, you get closer to your goal with each passing day.
https://www.webpack.top
MIT License
3 stars 0 forks source link

【Q073】useMemo 和 useCallback 的区别 #73

Open kangyana opened 1 year ago

kangyana commented 1 year ago

1. useCallback

useCallback 的参数

const handleChildrenCallback = useCallback(() => {
  handleChildren();
}, [])

useCallback 的返回值

返回一个 memoized 回调函数。 在依赖参数不变的情况下,返回的回调函数是同一个引用地址。 只有在依赖参数更新时,返回一个新的 memoized(地址发生改变)。

useCallback 使用场景

配合 memo 用于优化子组件的渲染次数。

2. useMemo

useMemo 的作用是避免在每次渲染时都进行高开销的计算的优化的策略。

useMemo 的参数(与useMemo相同)

useMemo 的返回值

返回一个 memoized 值。 在依赖参数不变的的情况返回的是上次第一次计算的值。

useMemo 使用场景

优化针对于当前组件高开销的计算,缓存计算值。

3. 总结

相同之处

不同之处