React中的useMemo和useCallback都是用來優化性能的鉤子函數,但它們的使用場景和作用略有不同。
useMemo:
const memoizedValue = useMemo(() => computeExpensiveValue(a, b), [a, b]);
,傳入一個函數和依賴項數組,只有依賴項發生變化時,才會重新計算。useCallback:
const memoizedCallback = useCallback(() => { doSomething(a, b); }, [a, b]);
,傳入一個回調函數和依賴項數組,只有依賴項發生變化時,才會重新創建回調函數。總結: