useCallbak
返回一个memoized(被记住的,备忘)的回调函数
// 官网示例
const memoizedCallbak = useCallback(
()=>{
doSomething(a,b);
},
[a,b]
)
把内联回调函数及依赖项数组作为参数传入 useCallback
,它将返回该回调函数的 memoized 版本,该回调函数仅在某个依赖项改变时才会更新。当你把回调函数传递给经过优化的并使用引用相等性去避免非必要渲染(例如 shouldComponentUpdate
)的子组件时,它将非常有用。
在每一次渲染组件时返回的函数其实都是不一样的,使用useCallback
包裹之后并添加依赖项的函数,只会在我们函数所需数据改变的时候才会重新为我们更新函数,否则会一直使用之前记住的那个函数,减少了一些不必要的渲染性能浪费