useCallback
是一個用來緩存函數的Hook,用來解決函數組件中函數重新創建導致子組件重新渲染的問題。正確使用useCallback
可以提高性能,避免不必要的渲染。
useCallback
接受兩個參數,第一個參數是一個函數,第二個參數是一個依賴數組。當依賴數組中的值發生變化時,函數會重新創建,否則會返回緩存的函數。
下面是一個示例,演示了如何正確使用useCallback
:
import React, { useState, useCallback } from 'react';
const App = () => {
const [count, setCount] = useState(0);
const handleClick = useCallback(() => {
setCount(count + 1);
}, [count]);
return (
<div>
<h1>{count}</h1>
<button onClick={handleClick}>Increase Count</button>
</div>
);
};
export default App;
在上面的示例中,handleClick
函數會在count
發生變化時重新創建,否則會返回緩存的函數。這樣可以避免不必要的渲染,提高性能。