useCallback
是React Hooks中的一个函数,用于对函数组件中的回调函数进行优化。
作用
useCallback
的作用就是将回调函数进行记忆化,确保每次组件重新渲染时,如果依赖项没有发生变化,那么返回的回调函数仍然是相同的引用,从而避免不必要的重新创建和传递给子组件。
语法
useCallback
函数接受两个参数:回调函数和依赖项数组。当依赖项数组中的任何一个值发生变化时,useCallback
会返回一个新的回调函数;否则,它会返回之前记忆的回调函数
使用场景
主要用于优化传递给子组件的回调函数,避免不必要的重新创建和渲染
demo
import React, { useCallback } from 'react';
function MyComponent() {
const handleClick = useCallback(() => {
console.log('Button clicked!');
}, []);
return (
<button onClick={handleClick}>Click Me</button>
);
}
可以看到,在上面的例子中,
handleClick
回调函数会被记忆化,只有在组件的依赖项发生变化时才会重新创建。通过useCallback
,我们可以确保每次组件渲染时,传递给<button>
组件的onClick
属性都是相同的引用,避免不必要的渲染。